当应用程序被解雇时,我在根视图控制器上有一个presentedViewController
。 (例如,用户导航到另一个应用程序或返回主屏幕。)
当用户重新激活应用程序而不让他们看到它时,我想将其取消。调用-dismissViewControllerAnimated:
不是一个选项,因为它仅在视图控制器可见时才有效,并且我希望尽快完成,特别是仅在application:openURL:sourceApplication:annotation:
中,否则让用户继续他们的工作流程图。
我可以使用任何技巧吗?
答案 0 :(得分:0)
根据您的评论,唯一的实际问题是当应用收到application:openURL:sourceApplication:annotation:
并因此被带到前线时会发生什么。
在这种情况下,只需在application:openURL:sourceApplication:annotation:
中调整您的界面 - 这是其目的的一部分,以允许您这样做。在“快照”被撕掉之前你会得到一些时间,所以如果涉及的调整是关闭现有的模态视图,那么在没有动画的情况下将其关闭,你就可以了。
用户仍会看到模态视图片刻,但不是真的 - 用户看到的不是您的界面,而是系统在应用时创建的“快照”进入后台。删除“快照”以显示实际界面(在iOS 7中具有良好的交叉渐变效果)。
如果“快照”本身存在问题,有办法阻止它被采取,但对我来说听起来不像是这种情况。
(顺便说一句,这提出了一个问题,即所提出的视图如何知道它必须被解雇。最初的主要操作是在你的app委托中,这可能与所呈现的视图有一些概念上的距离。这会在适当的情况下,使用NSNotification在这个距离上进行通信。)