以编程方式执行Segue并将parameter passing到目标视图

在我的应用程序,我有一个button,执行segue编程:

- (void)myButtonMethod { //execute segue programmatically [self performSegueWithIdentifier: @"MySegue" sender: self]; } 

我想知道是否有一种方法来引用目标视图并传递一些参数。

我知道在prepareForSegue方法中,我可以参考它: myDestinationViewController *vc = [segue destinationViewController]; ,但我不知道如何以编程方式执行segue。

你有什么想法?

谢谢,亚萨


更新:

我很抱歉这个问题! 我简单地发现,即使以编程方式调用segue, prepareForSegue方法也会被调用,所以可以按照相同的方式传递参数。

答案只不过是如何触发赛格而已。

prepareForSegue:sender:方法在任何情况下都被调用,这就是你传递参数的地方。

老问题,但这里是如何做你所问的代码。 在这种情况下,我将数据从表视图中选定的单元格传递到另一个视图控制器。

在trget视图的.h文件中:

 @property(weak, nonatomic) NSObject* dataModel; 

在.m文件中:

 @synthesize dataModel; 

在这种情况下, dataModel可以是stringint或类似的,它是一个包含许多项目的模型

 - (void)someMethod { [self performSegueWithIdentifier:@"loginMainSegue" sender:self]; } 

要么…

 - (void)someMethod { UIViewController *myController = [self.storyboard instantiateViewControllerWithIdentifier:@"HomeController"]; [self.navigationController pushViewController: myController animated:YES]; } - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { if([segue.identifier isEqualToString:@"storyDetailsSegway"]) { UITableViewCell *cell = (UITableViewCell *) sender; NSIndexPath *indexPath = [self.tableView indexPathForCell:cell]; NSDictionary *storiesDict =[topStories objectAtIndex:[indexPath row]]; StoryModel *storyModel = [[StoryModel alloc] init]; storyModel = storiesDict; StoryDetails *controller = (StoryDetails *)segue.destinationViewController; controller.dataModel= storyModel; } } 

我明白在一个地方执行segue的问题,并且保持状态发送参数来准备segue。

我想出了一个办法来做到这一点。 我已经添加了一个名为userInfoDict的属性使用一个类别ViewControllers。 我也覆盖执行与标识符segue,以这种方式,如果发件人是自我(指控制器本身)。 它将把这个userInfoDict传递给下一个ViewController。

这里不是传递整个UserInfoDict,而是可以传递特定的参数,作为发送者并相应地覆盖。

1件事你需要记住。 不要忘记在你的performSegue方法中调用超级方法。