我有两个segues的应用程序。在其中一个阶段中,当前的视图控制器成为委托,而另一个则不成立。prepareForSegue和代表
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"MoreOptions"]) {
UINavigationController *navigationController = segue.destinationViewController;
MoreOptionsViewController *controller = (MoreOptionsViewController *)navigationController.topViewController;
controller.delegate = self;
} else if ([segue.identifier isEqualToString:@"FullStoryView"]) {
SingleStoryViewController *detailViewController = segue.destinationViewController;
detailViewController.urlObject = sender;
}
}
所有这一切都工作正常,但我想尝试和更好地理解代码。我不明白的是,我必须通过从navigationController.topViewController抓取它来获取对MoreOptionsViewController的引用,而不是简单地从segue.destinationViewController获取它,就像我在第二个条件中那样。是否因为我将当前视图控制器(self)设置为委托?再次,我不是在试图解决问题,只是为了更好地理解发生的事情。
啊是的,有时答案是在普通的网站,是不是?谢谢。 – 2011-12-20 19:25:14