我有兩個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