1

我有以下代码:

- (void)applicationDidBecomeActive:(UIApplication *)application
{
    //make sure that the user credentials are still ok
    if (userLeftApplication){
        BaseViewController * baseViewController = [[BaseViewController alloc]init];
        BOOL detailsAreOK = [baseViewController credentialsValidated];
        if (!detailsAreOK){
            [self.window.rootViewController performSegueWithIdentifier: @"fromSplashToLogin" sender: self.window.rootViewController];
        }
        userLeftApplication = FALSE;
    }
}

但是,尝试执行 segue 时出现以下异常:

Attempt to present <LoginViewController: 0x2012e180> on <FirstViewController: 0x1f59cef0> whose view is not in the window hierarchy!

并且用户没有被引导到那里。

怎么了?

4

1 回答 1

2

rootViewController 当前未定义。您不能“从 App Delegate 执行转场”,转场是视图控制器之间的转换。您需要启动视图控制器而不是执行 segue。

self.window.rootViewController = baseViewController;
于 2013-01-06T11:34:55.323 回答