我有一个有两个 segues 的应用程序。在其中一个场景中,当前视图控制器成为委托,而另一个则不是。
- (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 的引用,而不是像在第二个 if 条件中那样简单地从 segue.destinationViewController 获取它。是因为我将当前视图控制器(自我)设置为委托吗?再说一次,我不是想解决问题,只是想更好地了解正在发生的事情。