从 iOS5 开始,对 viewWillAppear 和 viewWillDisappear 的调用发生了明显的变化。因此,无论应该发生什么,如果您可以依赖它在 iOS4 中发生的事情,它不应该在 iOS5 下以另一种方式工作。这对我来说很奇怪,它变成了一个反复试验的事情!
-viewWillAppear 只保证在之前也调用过 -viewWillDisappear 的地方被调用 - 但对于大多数模态视图/窗口来说,情况似乎并非如此!这可能是通知中心的问题,它可能被视为模态窗口左右!
所以不幸的是,我没有任何好的建议给你!
您可以检查通知中心关闭时是否正在调用 applicationDidBecomeActive 并以某种方式通过应用程序委托连接您的逻辑。
- (void)applicationDidBecomeActive:(UIApplication *)application
来自iOS 应用程序编程指南:
在 iOS 5 中,显示横幅的通知不会像基于警报的通知那样停用您的应用程序。相反,横幅位于应用程序窗口的顶部边缘,并且您的应用程序继续像以前一样接收触摸事件。但是,如果用户拉下横幅以显示通知中心,您的应用程序将进入非活动状态,就好像发生了基于警报的中断一样。在用户关闭通知中心或启动另一个应用程序之前,您的应用程序将保持非活动状态。此时,您的应用程序将进入适当的活动或后台状态。用户可以使用设置应用程序来配置哪些通知显示横幅,哪些显示警报。