从后台呈现简历上的ModalViewController,避免下面的内容闪现

时间:2012-06-25 14:58:56

标签: ios uiviewcontroller uikit

在我的应用程序中,我在启动时在根视图控制器的顶部呈现模态视图控制器,并且当从后台恢复时呈现加载/摘要屏幕。几秒钟后,这将被解除以显示根视图控制器。模式通过app delegate上的applicationWillEnterForeground方法显示。

一切正常,但是当从后台恢复时,在再次显示加载模式之前看到下方根视图控制器的闪光是很常见的。

我很难找到一种明显的方法来进行此演示,以确保它安全地显示而不会首先看到下面的视图。我错过了一些非常明显的东西吗?

2 个答案:

答案 0 :(得分:2)

documentation说明如下:

  

准备拍照。当时   applicationDidEnterBackground:方法返回,系统需要一个   应用程序用户界面的图片,并使用生成的图像   过渡动画。如果您的界面中包含任何视图   敏感信息,您应该先隐藏或修改这些视图   applicationDidEnterBackground:方法返回。

这意味着您应修改applicationDidEnterBackground:中的视图,使其按照您希望iOS在应用程序进入后台状态时自动显示的图片中显示。

还要记住以下几点:

  

你的app delegate的applicationDidEnterBackground:方法有   大约5秒钟完成任务并返回。在实践中,   这种方法应该尽快返回。如果方法有   在时间用完之前没有返回,你的应用程序被杀死并被清除   记忆。如果您还需要更多时间来执行任务,请致电   beginBackgroundTaskWithExpirationHandler:请求背景的方法   执行时间然后启动辅助中的任何长时间运行的任务   线。无论你是否开始任何后台任务,都可以   applicationDidEnterBackground:方法必须仍然在5内退出   秒。

答案 1 :(得分:0)

我记得,当应用程序是背景时,Apple代码会截取屏幕并将其存储起来。当您的应用程序重新启动时,它会显示屏幕截图,直到您的应用程序完成并接管。

简短的回答,我认为不可能避免内容的闪现。

你真的有两个选择,我建议你制作一个简短的“出现”动画来平滑过渡。如果您尝试使用重新登录提示或某些东西保护敏感材料,那将无法工作。如果你正在处理这样的情况,你需要在你进入后退状态时处理事情,而不是当你从它回来时。