私は2つのセグを持つアプリケーションを持っています。いずれかのセグで、現在のビューコントローラはデリゲートになり、もう一方はデリゲートになりません。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;
}
}
これはすべて問題なく動作しますが、コードをよく理解してください。私が理解できないことは、2番目のif条件のように、単純にsegue.destinationViewControllerから取得するのではなく、navigationController.topViewControllerからMoreOptionsViewControllerへの参照を取得する必要があることです。私は現在のビューコントローラ(自己)をデリゲートとして設定しているのですか?繰り返しますが、私は問題を解決しようとせず、何が起こっているのかをよりよく理解しようとしています。
ああ、時には答えがプレーンサイトにあるのではないですか?ありがとう。 –