UIViewController docs提及 -viewWillDisappear:
"This method is called in response to a view being removed from its window or covered by another view. This method is called before the view is actually removed or covered and before any animations are configured."
在 iOS 4.3 及更低版本中,我们应该呈现一个 viewController 而不是明确地将 viewController 的 View 添加到 View 层次结构中,因此调用
-viewWillDisappear
或 -viewDidDisappear
当在现有 View 上呈现新的 View Controller 时将触发,在这种情况下'被另一个 View 覆盖 ' 是真的!但是如果一个 viewController 的 View 被隐藏了,因为另一个 View 挡住了 viewController 的 View 呢?我们得到这些回调了吗?好吧,在 iOS 5 中有一个 UIViewController 包含概念,通过设置 viewController 之间的父子关系,可以将 View 直接添加为 View 层次结构中的 subview 。因此,与 <= 4.3 操作系统不同,-
viewWillDisappear
和 -viewDidDisappear
理想情况下,当 viewController 的 View 被其他 View 阻挡或覆盖时,应该触发调用,我已经通过示例项目验证了它在 SDK 5.0 中没有发生。有没有人发现这个问题与这些回调有关?
或者,我的理解是否正确?
谢谢,
拉吉
最佳答案
有人在这里遇到同样的问题:
iOS 5 : -viewWillAppear is not called after dismissing the modal in iPad
你应该阅读答案,我发现它们很有趣。
关于cocoa-touch - 当一个 ViewController 的 View 被另一个 View 和 UIViewController Containment 在 iOS5 中隐藏时,viewWillAppear 和 viewWillDisappear 回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6733372/