在iOS中,使用Storyboard,当我想将一个对象传递给我的详细视图控制器时,我通常会这样做:
- (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"];
}
}
}
如果我的下一个视图控制器需要此对象,这对我来说很有意义。我想知道的是,将对象多个屏幕深度传递的最佳做法是什么。例如,如果我有4个视图控制器:
A-> B-> C-> d
A有路由属性,D需要路由属性,但B和C没有,D如何获取路由属性?我一直只是将属性添加到B和C,以便属性可以渗透到我需要的视图控制器,但我不确定是否有更简洁的方法来执行此操作。提前谢谢!
答案 0 :(得分:1)
你可以使用appdelegate。在AppDelegate中声明您的变量(nsstring,nsinteger,nsarray等)。现在你可以像这样调用你的变量: self.appDelegate = [[UIapplication sharedapplication] delegate]; self.appDelegate.yourVariable