我有一个带有 3 个视图控制器的标签栏应用程序,我使用“viewWillAppear”来检测打开了哪个视图。
当我关闭应用程序时,它仍然“在后台”工作,当我再次打开应用程序时,“viewWillAppear”没有检测到这个打开。
有没有其他选项可以检测到这个开口?谢谢
我有一个带有 3 个视图控制器的标签栏应用程序,我使用“viewWillAppear”来检测打开了哪个视图。
当我关闭应用程序时,它仍然“在后台”工作,当我再次打开应用程序时,“viewWillAppear”没有检测到这个打开。
有没有其他选项可以检测到这个开口?谢谢
您可以在您的应用委托中观察UIApplicationWillEnterForegroundNotification
或实施。applicationWillEnterForeground:
首先,您应该在UIApplicationDelegate
当您关闭当前打开的应用程序时,它将调用此方法:
- (void)applicationDidEnterBackground:(UIApplication *)application
在应用程序关闭但仍处于停靠栏后,您再次打开它们。在进入应用程序之前的过渡状态,它会调用这个方法:
- (void)applicationWillEnterForeground:(UIApplication *)application
当应用程序完全呈现在您关闭它们之前的先前状态时。它最终调用了这个方法:
- (void)applicationDidBecomeActive:(UIApplication *)application
如果你想做一些事情,viewWillAppear
你应该实现applicationDidBecomeActive
向你当前的视图发送一些消息,或者在应用程序激活后做你想做的事情。
当您的应用程序从后台恢复时,它将接收该applicationWillEnterForground:
方法。它也会在applicationDidEnterBackground:
暂停时得到。
- (void)applicationWillEnterForeground:(UIApplication *)application {
NSLog(@"app will enter foreground");
[viewController refresh:NULL];
}
我认为这会奏效。在你的应用委托中写下这个