我有一个带有3个视图控制器的Tab栏应用程序,我使用“viewWillAppear”来检测哪个视图是打开的。
当我关闭应用程序时,它仍然可以“在后台”工作,当我再次打开应用程序时,“viewWillAppear”没有检测到此开放。
还有其他选择来检测此开口吗?感谢
答案 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中写下这个