2

3つのビューコントローラーを備えたタブバーアプリがあり、「viewWillAppear」を使用して開いているビューを検出します。

アプリを閉じても「バックグラウンド」で動作し、アプリを再度開くと「viewWillAppear」がこの開きを検出しません。

この開口部を検出する他のオプションはありますか?ありがとう

4

4 に答える 4

8

アプリデリゲートでまたはを監視UIApplicationWillEnterForegroundNotificationまたは実装できます。applicationWillEnterForeground:

于 2012-05-05T19:41:24.733 に答える
5

まず、必要な委任方法をUIApplicationDelegate

  • 現在開いているアプリケーションを閉じると、次のメソッドが呼び出されます。

    - (void)applicationDidEnterBackground:(UIApplication *)application

  • アプリケーションを閉じた後、まだドックにある場合は、アプリケーションを再度開きます。アプリケーションに入る前の遷移状態では、次のメソッドを呼び出します。

    - (void)applicationWillEnterForeground:(UIApplication *)application

  • アプリケーションを閉じる前に、アプリケーションが以前の状態で完全に表示されたとき。最後にthidメソッドを呼び出します。

    - (void)applicationDidBecomeActive:(UIApplication *)application

で何かをしたい場合は、アプリケーションがアクティブになった後に実行したいことを実行するために、現在のビューまたは他のビューにメッセージを送信するためにviewWillAppear実装する必要があります。applicationDidBecomeActive

于 2012-05-05T19:56:53.057 に答える
1

アプリがバックグラウンドから再開されると、メソッドを受け取りますapplicationWillEnterForground:applicationDidEnterBackground:一時停止したときにも取得します。

于 2012-05-05T19:36:28.260 に答える
0
- (void)applicationWillEnterForeground:(UIApplication *)application {
NSLog(@"app will enter foreground");
[viewController refresh:NULL];
}

これでうまくいくと思います。アプリのデリゲートにこれを書いてください

于 2017-10-24T12:58:17.550 に答える