У меня есть приложение с двумя 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;
}
}
Все это работает нормально, но я хотел бы попытаться понять код лучше.Чего я не понимаю, так это того, что мне нужно получить ссылку на MoreOptionsViewController, взяв его из navigationController.topViewController, а не просто получить его из segue.destinationViewController, как я делаю во втором условии if.Это потому, что я устанавливаю текущий контроллер представления (сам) в качестве делегата?Опять же, я не пытаюсь решить проблему, просто пытаюсь лучше понять, что происходит.