iOS 8上的UIApplicationStateInactive

时间:2014-07-01 03:59:35

标签: ios iphone ios8 uiapplication

我有一个在iOS 7上正常运行的相机应用。在我viewDidAppear的{​​{1}}调用中,我首先检查应用程序状态是否处于非活动状态且应用程序不在后台。 代码示例如下所示。

MainViewController

我的问题是在iOS 8 beta 2 -(void) viewDidAppear { if ((UIApplicationStateBackground != [UIApplication sharedApplication].applicationState) && (UIApplicationStateInactive != [UIApplication sharedApplication].applicationState)) { // check if the camera is running // perform the animation of opening shutter. } } 返回[UIApplication sharedApplication].applicationState因此检查失败。但是在iOS 7 UIApplicationStateInactive上返回[UIApplication sharedApplication].applicationState并且没有任何问题。 还有其他人遇到过同样的问题吗?

修改 在xcode 6中将断点放在UIApplicationStateActiveviewDidAppear中的简单实验表明,appDidBecomeActive首先被调用。我想它是iOS 8中的一个错误

1 个答案:

答案 0 :(得分:4)

除非应用处于有效状态,或者至少变为活动状态,否则您的视图无法显示。视图不会在应用处于非活动状态或后台时显示。如果我是你,我会完全删除这个条件。它从未提供任何有用的功能。

(顺便说一下,如果您在发布时遇到这种情况,您所遇到的声音就像我以另一种形式向Apple报告的问题:在iOS 8中,该应用程序在整个界面启动并运行之后,不会切换到活动状态(以便application:didBecomeActive:触发),直到非常延迟。这导致我必须重写我的很多代码。例如,如果使用我的根视图控制器viewDidAppear:注册applicationDidBecomeActive通知,我很快就会收到该通知 - 这是坚果。)