0

在 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"];
        }
    }
}

如果我的下一个视图控制器需要这个对象,这对我来说很有意义。我想知道的是,将对象传递到多个屏幕的最佳实践是什么。例如,如果我有 4 个视图控制器:

A->B->C->D

A有路由属性,D需要路由属性,B和C都没有,D怎么得到路由属性?我一直在将属性添加到 B 和 C 以便属性可以向下渗透到我需要的视图控制器,但我不确定是否有更清洁的方法来执行此操作。提前致谢!

4

1 回答 1

1

你可以使用 appdelegate。在 AppDelegate 中声明您的变量(nsstring、nsinteger、nsarray .. 等)。现在你可以像这样调用你的变量: self.appDelegate = [[UIapplication sharedapplication]delegate]; self.appDelegate.yourVariable

于 2013-09-19T05:28:26.197 回答