我有一个包含实时相机Feed的viewController。
与许多应用一样,在viewWillAppear
和viewWillDisappear
方法中,我都会启动和停止相机。
像许多次和情况一样,似乎总是调用viewWillDisappear
并且不再调用willWillAppear
(因为iOS 4.0我会说?)
这就是:当这个视图是我的TabBar的selectedVC,并且用户通过ragging al向下显示通知中心时,始终会调用viewWillDisappear
并停止实时Feed。但是当这个观点被驳回时,我再也没有得到控制器重新上线的回调。
任何提示?谢谢;)
答案 0 :(得分:3)
自iOS5以来,对viewWillAppear和viewWillDisappear的调用显然发生了变化。所以无论发生什么,如果你可以依赖它在iOS4中发生,它不应该在iOS5下以另一种方式工作。这对我来说很奇怪,它成了一个反复试验的事情!
-viewWillAppear只能保证在之前调用过-viewWillDisappear的地方调用 - 但是对于大多数模态视图/窗口,情况似乎并非如此!这可能是通知中心的问题,它可能被视为一个模态窗口左右!
很遗憾,我没有任何好的建议!
您可以检查通知中心关闭时是否正在调用applicationDidBecomeActive,并以某种方式通过应用程序代理连接您的逻辑。
- (void)applicationDidBecomeActive:(UIApplication *)application
在iOS 5中,显示横幅的通知不会停用您的 应用程序以基于警报的通知的方式执行。相反,横幅 沿应用程序窗口的顶部边缘放置,您的应用程序继续 像以前一样接收触摸事件。但是,如果用户拉下来 横幅显示通知中心,您的应用程序移动到 非活动状态,就像发生了基于警报的中断一样。 您的应用程序将保持非活动状态,直到用户解除 通知中心或启动另一个应用程序。此时,你的应用程序 移动到适当的活动或背景状态。用户可以使用 设置应用程序,用于配置显示横幅的通知和 显示警报。
答案 1 :(得分:1)
我刚刚使用AppDelegate ApplicationDidBecomeActive方法找到了解决方法。
之后,我手动调用[selectedViewController viewWillAppear:YES];
:)