ios的视图控制器的viewWillAppear和viewDidAppear什么时候被调用

来源:互联网 发布:地图标注软件 编辑:程序博客网 时间:2024/05/18 13:43
翻译自: http://stackoverflow.com/questions/5277940/why-does-viewwillappear-not-get-called-when-an-app-comes-back-from-the-backgroun

viewWillAppear和viewDidAppear什么时候被调用

问:

当我向一个UINavigationController压入一个视图控制器的时候,

         1.    什么时候会触发viewWillAppear和viewDidAppear?

         2.    什么导致了触发viewWillAppear和viewDidAppear失败?

答:

    当你调用pushViewController:animated把一个视图控制器压入UINavigationController的时候,UINavigationController会自动调用这些方法。相似的,当你tabs时,UITabBarController会直接调用这些方法,当你使用presentModalViewController时也会调用方法。当一个视图控制器的视图被添加到一个window中时也会调用这些方法。我在这些情况下没有遇到过这些方法调用失败的情况。

    记住,这些方法只在这些特定的情况下控制器pushed或presented的时候被调用。在其它的情况下不会被调用,比如你添加你的视图控制器的视图作为一个视图的子视图而不是作为window的子视图。苹果官方文档说视图控制器仅用于全屏显示的视图,典型的是使用上面提到的方法。可以忽略苹果的建议使一个视图控制器关联另一个视图控制的的视图作为子视图,但是你需要在作为容器的视图控制器中手动的调用嵌套控制器的viewWillAppear和viewDidAppear。


原创粉丝点击