iOS では、Storyboards を使用して、オブジェクトを詳細ビュー コントローラーに渡したい場合、通常は次のようにします。
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
UIViewController *destination = [segue destinationViewController];
if ([segue.identifier isEqualToString:@"ShowRouteViewController"]) {
if ([destination respondsToSelector:@selector(setRoute:)]) {
[destination setValue:self.route forKey:@"route"];
}
}
}
次のView Controllerがこのオブジェクトを必要とする場合、これは理にかなっています。私が疑問に思っていたのは、オブジェクトを複数の画面に深く渡すためのベストプラクティスは何ですか。たとえば、4 つのビュー コントローラーがあるとします。
A->B->C->D
A にはルート プロパティがあり、D にはルート プロパティが必要ですが、B と C には必要ありません。D はどのようにしてルート プロパティを取得しますか? プロパティを B と C に追加して、必要なビュー コントローラーにプロパティを追加できるようにしましたが、これを行うためのよりクリーンな方法があるかどうかはわかりませんでした。前もって感謝します!