有条件地设置keyWindow rootViewController从storyboard实例化在iOS7中不起作用

时间:2015-02-17 21:13:35

标签: ios objective-c uiviewcontroller storyboard uiapplication

我有我的应用的登录信息,因此我需要根据他们是否已保存身份验证来有条件地设置keyWindow rootViewController。如果有身份验证,请显示tabBarController,如果没有,请显示登录视图。

在我的Storyboard我有一个虚拟视图设​​置为初始视图控制器,然后在该VC的viewDidLoad中我有以下逻辑:

if (showTab) {

    UITabBarController *rootViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"ZSSTabBarController"];
    [[UIApplication sharedApplication].keyWindow setRootViewController:rootViewController];

} else {

    ZSSLogin *login = [self.storyboard instantiateViewControllerWithIdentifier:@"ZSSLogin"];
    [[UIApplication sharedApplication].keyWindow setRootViewController:login];

}//end

我正在从我的Storyboard实例化viewControllers,这似乎很容易。但是,由于某种原因,这不适用于iOS7,只有iOS8。当试图在iOS7上加载登录屏幕时,我只是得到一个空白视图,假设它仍然显示虚拟VC并且永远不会用登录视图替换它。

为什么这对iOS7不起作用,但在iOS8中效果很好?是什么改变了使这项工作在8?

0 个答案:

没有答案