当UIApplication再次变为活动状态时,无需显示一个presentViewController

时间:2014-05-23 22:45:55

标签: ios ios7 uiviewcontroller uikit

当应用程序被解雇时,我在根视图控制器上有一个presentedViewController。 (例如,用户导航到另一个应用程序或返回主屏幕。)

当用户重新激活应用程序而不让他们看到它时,我想将其取消。调用-dismissViewControllerAnimated:不是一个选项,因为它仅在视图控制器可见时才有效,并且我希望尽快完成,特别是仅在application:openURL:sourceApplication:annotation:中,否则让用户继续他们的工作流程图。

我可以使用任何技巧吗?

1 个答案:

答案 0 :(得分:0)

根据您的评论,唯一的实际问题是当应用收到application:openURL:sourceApplication:annotation:并因此被带到前线时会发生什么。

在这种情况下,只需在application:openURL:sourceApplication:annotation:中调整您的界面 - 这是其目的的一部分,以允许您这样做。在“快照”被撕掉之前你会得到一些时间,所以如果涉及的调整是关闭现有的模态视图,那么在没有动画的情况下将其关闭,你就可以了。

用户仍会看到模态视图片刻,但不是真的 - 用户看到的不是您的界面,而是系统在应用时创建的“快照”进入后台。删除“快照”以显示实际界面(在iOS 7中具有良好的交叉渐变效果)。

如果“快照”本身存在问题,有办法阻止它被采取,但对我来说听起来不像是这种情况。

(顺便说一句,这提出了一个问题,即所提出的视图如何知道它必须被解雇。最初的主要操作是在你的app委托中,这可能与所呈现的视图有一些概念上的距离。这会在适当的情况下,使用NSNotification在这个距离上进行通信。)