ios - iOS 8 上的 UIApplicationStateInactive
<p><p>我有一个在 iOS 7 上运行良好的相机应用程序。在我的 <code>MainViewController</code> 的 <code>viewDidAppear</code> 调用中,我首先检查应用程序状态是否处于非事件状态以及应用程序不在后台。
代码示例如下。</p>
<pre><code>-(void) viewDidAppear
{
if ((UIApplicationStateBackground != .applicationState)
&& (UIApplicationStateInactive != .applicationState))
{
// check if the camera is running
// performthe animation of opening shutter.
}
}
</code></pre>
<p>我的问题是在 iOS 8 beta 2 <code>.applicationState</code> 返回 <code>UIApplicationStateInactive</code> 因此检查失败。但是在 iOS 7 <code>.applicationState</code> 返回 <code>UIApplicationStateActive</code> 并且没有任何问题。
有没有其他人遇到过同样的问题? </p>
<p><strong>编辑</strong>
在 xcode 6 中的 <code>viewDidAppear</code> 和 <code>appDidBecomeActive</code> 中放置断点的简单实验表明,首先调用了 <code>viewdidAppear</code>。我想它是 iOS 8 中的一个错误 </p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>除非应用处于事件状态,或者至少处于事件状态,否则您的 View 不可能出现。当应用程序处于非事件状态或在后台时, View 不会出现。因此,如果我是您,我会完全删除该条件。它从来没有提供任何有用的功能。</p>
<p>(顺便说一句,如果您在启动时遇到这种情况,您遇到的问题听起来像是我以另一种形式向 Apple 报告的问题:在 iOS 8 中,应用程序不会切换到事件状态(以便 <code>application:didBecomeActive:</code> 触发)直到 <em>very</em> 很晚,<em>well</em> 在整个界面启动并运行之后。这导致我有重写我的很多代码。例如,如果使用我的 Root ViewController 的 <code>viewDidAppear:</code> 来注册 <code>applicationDidBecomeActive</code> 通知,然后我很快就会收到该通知 - 这很疯狂。)</p></p>
<p style="font-size: 20px;">关于ios - iOS 8 上的 UIApplicationStateInactive,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/24502248/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/24502248/
</a>
</p>
页:
[1]