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;
    }
}

ただし、セグエを実行しようとすると、次の例外が発生します。

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

ユーザーはそこに誘導されていません。

なにが問題ですか?

4

1 に答える 1

2

rootViewControllerは現在定義されていません。'AppDelegateからセグエを実行することはできません'。セグエはビューコントローラ間の遷移です。セグエを実行するのではなく、ViewControllerを起動する必要があります。

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