4

UIViewController文档提到-viewWillDisappear:

“调用此方法是为了响应从其窗口中删除或被另一个视图覆盖的视图。在实际删除或覆盖视图之前以及配置任何动画之前调用此方法。”

在 iOS 4.3 及更低版本中,我们应该呈现一个 viewController 而不是显式地将 viewController 的视图添加到视图层次结构中,因此当在现有视图上呈现一个新的视图控制器时,调用-viewWillDisappearor-viewDidDisappear将被触发,在这种情况下 '由另一种观点'是真的!但是如果一个 viewController 的视图因为另一个视图挡住了 viewController 的视图而被隐藏了怎么办?我们收到这些回调了吗?

好吧,在 iOS 5 中有一个 UIViewController 包含概念,通过设置 viewController 之间的父子关系,可以将视图直接添加为视图层次结构中的子视图。因此,与 <= 4.3 OS 不同,理想情况下viewWillDisappear-viewDidDisappear应该在 viewController 的视图被其他视图阻挡或覆盖时触发调用,我已经通过示例项目验证了它在 SDK 5.0 中没有发生。

有没有人发现与这些回调相关的这个问题?或者,我的理解正确吗?

谢谢,拉吉

4

1 回答 1

1

有人在这里遇到同样的问题:

iOS 5:在 iPad 中关闭模式后不调用 -viewWillAppear

您应该阅读答案,我发现它们非常有趣。

于 2011-11-10T18:46:23.253 回答