1

アプリケーションが以前にバックグラウンドにあった場合、applicationDidBecomeActiveが呼び出されると、ストーリーボードの最初のビューコントローラーが現在のコントローラーになると思います。

私が使用した:

- (void)applicationDidBecomeActive:(UIApplication *)application
{
    [self.window makeKeyAndVisible];
}

アプリを再起動すると、loginAciton内部rootViewControllerはまだ呼び出されますが、次のコントローラーを表示できませんでした。何も起こらなかったようなエラーはありません。

- (IBAction)loginAciton:(id)sender
{
    id controller = [self.storyboard instantiateViewControllerWithIdentifier:@"Navigation"];
    [self presentModalViewController:controller animated:YES];   
}

なんで?

PS。私のrootViewControllerはUINavigationControllerではありません。

返信ありがとうございます。

4

3 に答える 3

3

より良い方法は、 に追加UIApplicationExitsOnSuspendしてInfo.plistに設定することYESです。

于 2012-06-29T06:53:00.973 に答える
0

通知も使用できます。このコードを applicationDidBecomeActiveに入れます。

[[NSNotificationCenter defaultCenter] postNotificationName:@"appActivated" object:nil];

その現在のビューにオブザーバーを追加します...

[[NSNotificationCenter defaultCenter] addObserver:self 
                                     selector:@selector(updateView:)        
                                         name:@"appActivated" 
                                       object:nil];

現在のビューのdealloc:でオブザーバーを削除することを忘れないでください...

[[NSNotificationCenter defaultCenter] removeObserver:self];

これはあなたを助けるかもしれません..

于 2012-06-29T13:34:41.283 に答える
0

わかった !

ストーリーボードの最初のView Controllerを毎回現在のコントローラーにしたい場合は、それを試すことができます:

- (void)applicationDidEnterBackground:(UIApplication *)application
{
   exit(EXIT_SUCCESS);
}
于 2012-06-29T04:37:23.023 に答える