当我从一个视图控制器(我们称之为MasterViewController
)转换到另一个视图控制器(称为DetailViewController
)时,viewWillDisappear:
,viewWillAppear:
等的顺序如何。每个控制器上的方法都叫做?
我怀疑当我的主视图消失时调用的一些清理代码会干扰我的详细视图中的初始化代码。我查看了Apple的文档,但找不到任何涉及多个视图控制器的信息。
答案 0 :(得分:7)
我创建了一个简单的基于UINavigationController的项目,并添加了一些NSLog
语句,以找出它们被调用的顺序。
prepareForSegue:
viewDidLoad
viewWillDisappear:
viewWillAppear:
viewDidDisappear:
(动画完成后) viewDidAppear:
但是,使用UITabViewController
在视图之间切换时,顺序是不同的:
viewDidLoad
viewWillAppear:
viewWillDisappear:
viewDidDisappear:
viewDidAppear:
因此,您似乎无法始终依赖于以相同顺序发生的这些事件 - 它可能会根据您正在转换的视图控制器的性质而有所不同。
我在这里错过了哪些重点?