我有一个带有3个视图控制器的Tab栏应用程序,我使用“viewWillAppear”来检测哪个视图是打开的 .
当我关闭应用程序时,它仍然“在后台”工作,当我再次打开应用程序时,“viewWillAppear”没有检测到这个开头 .
有没有其他选择来检测这个开口?谢谢
- (void)applicationWillEnterForeground:(UIApplication *)application { NSLog(@"app will enter foreground"); [viewController refresh:NULL]; }
我认为这会奏效 . 在你的app delegate中写这个
首先,你应该在 UIApplicationDelegate 看到必要的委托方法
UIApplicationDelegate
- (void)applicationDidEnterBackground:(UIApplication *)application
- (void)applicationWillEnterForeground:(UIApplication *)application
- (void)applicationDidBecomeActive:(UIApplication *)application
如果您想在 viewWillAppear 中执行某些操作,则应在 applicationDidBecomeActive 中实现向当前视图或其他人发送一些消息,以便在应用程序激活后执行您想要执行的操作 .
viewWillAppear
applicationDidBecomeActive
您可以在应用委托中观察 UIApplicationWillEnterForegroundNotification 或实施 applicationWillEnterForeground: .
UIApplicationWillEnterForegroundNotification
applicationWillEnterForeground:
当您的应用从后台恢复时,它将收到 applicationWillEnterForground: 方法 . 当它被暂停时它会得到 applicationDidEnterBackground: .
applicationWillEnterForground:
applicationDidEnterBackground:
4 回答
我认为这会奏效 . 在你的app delegate中写这个
首先,你应该在
UIApplicationDelegate
看到必要的委托方法- (void)applicationDidEnterBackground:(UIApplication *)application
- (void)applicationWillEnterForeground:(UIApplication *)application
- (void)applicationDidBecomeActive:(UIApplication *)application
如果您想在
viewWillAppear
中执行某些操作,则应在applicationDidBecomeActive
中实现向当前视图或其他人发送一些消息,以便在应用程序激活后执行您想要执行的操作 .您可以在应用委托中观察
UIApplicationWillEnterForegroundNotification
或实施applicationWillEnterForeground:
.当您的应用从后台恢复时,它将收到
applicationWillEnterForground:
方法 . 当它被暂停时它会得到applicationDidEnterBackground:
.