应用程序进入前景后,viewWillAppear不会再次触发

时间:2012-10-13 12:57:50

标签: iphone objective-c viewwillappear

当我在viewWillAppear没有被调用后进入前景时,任何人都可以指导我如何在前景后触发我的viewWillAppear方法

感谢您提前

2 个答案:

答案 0 :(得分:2)

在任何应用程序中,当您的应用程序进入后台或进入前台时,您的viewController的委托方法将不会被调用,您的应用程序委托方法将被调用。

Apple为每个应用委托方法提供了通知,您可以在viewControllers中实现它们,以便最大限度地减少和最大化您的应用。

只需使用UIApplicationWillResignActiveNotification检测应用输入背景,然后使用UIApplicationWillEnterForegroundNotificationUIApplicationDidBecomeActiveNotification检测应用返回前台。

在适当的位置添加和删除这些通知,主要是在viewDidLoad中添加并在viewDidUnLoad中删除。

由于

答案 1 :(得分:0)

您可以在appdelegate方法中找到最顶层的视图控制器:

- (void)applicationWillEnterForeground:(UIApplication *)application{
    /* find out the top view controller as

    self.navigationController.visibleViewController
                 OR
    self.navigationController.topViewController
    and find out its kind using:
    [self.navigationController.visibleViewController isKindOfClass:[YourViewControllerClass Class]];
    */
}