【发布时间】:2011-12-11 11:07:21
【问题描述】:
之前在 iOS 4.3 中编码时,我发现在使用 [superview addSubView:controller.view] 将视图控制器的视图添加到另一个视图时,控制器实例将不会收到 -viewWillAppear/viewDidAppear 消息,而我在堆栈溢出的某些线程中发现了同样的问题。之后,我根据需要手动调用-viewWillAppear/-viewDidAppear。
但是,升级到iOS 5.0 后,发生了一些活泼的UIView 行为。最后我发现,在 iOS 5 中,[superview addSubView:controller.view] 会自动向控制器实例发送 -viewWillAppear/-viewDidAppear 消息,加上我手动调用,每次控制器执行其行为时都会有两条重复的消息。
我也发现了一个类似的问题:iOS 5 : -viewWillAppear is not called after dismissing the modal in iPad
现在,问题是,在搜索苹果的文档后,我没有找到任何明确的文档来区分这些问题。我什至想知道这是否是 iOS 5.0 中保证的视图生命周期行为。
有没有人解决类似的问题或找到一些关于这些差异的指南。因为我想在4.x & 5.x iOS 中运行我的应用程序。
【问题讨论】:
-
正如您所发现的,iOS 4 和 iOS 5 之间只有大约 10% 的更改被明确记录。
标签: iphone ios ipad uiviewcontroller ios5