不建议在分离的视图控制器上显示视图控制器 - “分离视图控制器”的定义?

时间:2015-10-27 21:16:05

标签: ios uiviewcontroller

行。所以我浏览了网页并阅读了有关这个相对较新的iOS警告的类似问题。我的应用程序使用没有故事板。我只有一个简单的问题。什么是“独立视图控制器”,并且任何人都可以提供明确的参考(例如,向Apple文档)提供“分离视图控制器”的定义,因为我们将在此警告的上下文中理解它。如果没有人真正了解正是分离的视图控制器是什么,我没有看到这个问题的其他答案如何不仅仅是对这个主题的摸索和猜测。

1 个答案:

答案 0 :(得分:1)

分离视图控制器是当前不在[[[UIApplication sharedApplication] keyWindow] rootViewController]

层次结构中的控制器

例如,我可以在我的代码中的任何地方实例化UIViewController,但如果我从未将它放在此层次结构中,方法是将其设为rootViewController或推入rootViewController中的导航堆栈,那么我当我在其上展示某些东西时会产生奇怪/未定义的行为。

示例:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    UIViewController* a = [[UIViewController alloc] init];
    UIViewController* b = [[UIViewController alloc] init];
    UIViewController* someOtherVC = [[UITableViewController alloc] init];



    self.window.rootViewController = a;
    //Works fine :)
    [a presentViewController:someOtherVC animated:YES completion:nil];

    //might break the world
    [b presentViewController:someOtherVC animated:YES completion:nil]; 

}