检测应用开放?

时间:2012-05-05 19:34:25

标签: iphone objective-c ios xcode

我有一个带有3个视图控制器的Tab栏应用程序,我使用“viewWillAppear”来检测哪个视图是打开的。

当我关闭应用程序时,它仍然可以“在后台”工作,当我再次打开应用程序时,“viewWillAppear”没有检测到此开放。

还有其他选择来检测此开口吗?感谢

4 个答案:

答案 0 :(得分:8)

您可以在应用代理中观察UIApplicationWillEnterForegroundNotification或实施applicationWillEnterForeground:

答案 1 :(得分:5)

首先,您应该在UIApplicationDelegate

中看到必要的委派方法
  • 当您关闭当前打开的应用程序时,它将调用此方法:

    - (void)applicationDidEnterBackground:(UIApplication *)application

  • 应用程序关闭但仍处于停靠状态后,再次打开它们。在进入应用程序之前的过渡状态中,它将调用此方法:

    - (void)applicationWillEnterForeground:(UIApplication *)application

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

    - (void)applicationDidBecomeActive:(UIApplication *)application

如果您想在viewWillAppear中执行某些操作,则应在applicationDidBecomeActive中实施以向当前视图发送一些消息,或者在应用程序激活后执行您想要执行的操作。

答案 2 :(得分:1)

当您的应用从后台恢复时,它会收到applicationWillEnterForground:方法。它也会在暂停时获得applicationDidEnterBackground:

答案 3 :(得分:0)

- (void)applicationWillEnterForeground:(UIApplication *)application {
NSLog(@"app will enter foreground");
[viewController refresh:NULL];
}

我认为这会奏效。 在你的app delegate中写下这个