UIViewController的viewDidAppear / viewDidDisappear:什么时候应该调用那些方法?

时间:2011-02-11 10:02:02

标签: iphone cocoa-touch uiviewcontroller

我肯定需要澄清一下究竟应该调用viewDidAppear / viewDidDisappear方法......

  1. 如果应用程序在显示某个视图时进入后台,在这种情况下,我希望在链接到该视图的UIViewController上调用viewDidDisappear。另一方面,如果应用程序在后台后进入前台,我希望调用viewDidAppear。但它不会这样。
  2. 如果UINavigationController显示UIViewController,我们调用'A',并且UIViewController链接到一个视图,该视图的子视图链接到另一个我们称之为'B'的UIViewController,则不会在控制器'B'上调用viewDidAppear方法。我是否必须自己传播viewDidAppear?我很困惑......
  3. 提前谢谢!

2 个答案:

答案 0 :(得分:3)

  1. 他们没有被召唤,因为他们不会消失并重新出现,除非你告诉他们消失。您的整个申请被暂停。如果您想知道您的应用是否被暂停或重新启动,则需要收听应用代理applicationDidBecomeActive:applicationWillResignActive:消息。您还可以注册通知UIApplicationDidBecomeActiveNotificationUIApplicationWillResignActiveNotification

  2. 是的,您必须手动将viewDidAppear:消息传播到子视图。这是按设计工作的。

答案 1 :(得分:0)

还有:

(也是app委托方法):

- (void)applicationDidEnterBackground:(UIApplication *)application