0

我有一个包含实时摄像机源的 viewController。像许多应用程序一样,在viewWillAppearviewWillDisappear方法中,我同时启动和停止相机。

像很多次和情况一样,似乎viewWillDisappear总是调用并且willWillAppear不再调用(因为我会说iOS 4.0?)

事情是这样的:当这个视图是我的 TabBar 的 selectedVC 时,并且用户通过一直向下拖动来显示通知中心,viewWillDisappear总是会调用并停止实时提要。但是当这个视图被关闭时,我再也没有收到控制器再次激活的回调。

有小费吗?谢谢 ;)

4

2 回答 2

3

从 iOS5 开始,对 viewWillAppear 和 viewWillDisappear 的调用发生了明显的变化。因此,无论应该发生什么,如果您可以依赖它在 iOS4 中发生的事情,它不应该在 iOS5 下以另一种方式工作。这对我来说很奇怪,它变成了一个反复试验的事情!

-viewWillAppear 只保证在之前也调用过 -viewWillDisappear 的地方被调用 - 但对于大多数模态视图/窗口来说,情况似乎并非如此!这可能是通知中心的问题,它可能被视为模态窗口左右!

所以不幸的是,我没有任何好的建议给你!

您可以检查通知中心关闭时是否正在调用 applicationDidBecomeActive 并以某种方式通过应用程序委托连接您的逻辑。

- (void)applicationDidBecomeActive:(UIApplication *)application

来自iOS 应用程序编程指南

在 iOS 5 中,显示横幅的通知不会像基于警报的通知那样停用您的应用程序。相反,横幅位于应用程序窗口的顶部边缘,并且您的应用程序继续像以前一样接收触摸事件。但是,如果用户拉下横幅以显示通知中心,您的应用程序将进入非活动状态,就好像发生了基于警报的中断一样。在用户关闭通知中心或启动另一个应用程序之前,您的应用程序将保持非活动状态。此时,您的应用程序将进入适当的活动或后台状态。用户可以使用设置应用程序来配置哪些通知显示横幅,哪些显示警报。

于 2012-12-03T13:01:23.627 回答
1

I just found a workaround using the AppDelegate ApplicationDidBecomeActive method. After that, I manually called the [selectedViewController viewWillAppear:YES]; :)

于 2012-12-03T14:29:00.750 回答