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

  • 当应用程序完全呈现在您关闭它们之前的先前状态时。它最终调用了这个方法:

    - (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 回答