在我的应用程序中,我在启动时在根视图控制器的顶部呈现模态视图控制器,并且当从后台恢复时呈现加载/摘要屏幕。几秒钟后,这将被解除以显示根视图控制器。模式通过app delegate上的applicationWillEnterForeground
方法显示。
一切正常,但是当从后台恢复时,在再次显示加载模式之前看到下方根视图控制器的闪光是很常见的。
我很难找到一种明显的方法来进行此演示,以确保它安全地显示而不会首先看到下面的视图。我错过了一些非常明显的东西吗?
答案 0 :(得分:2)
documentation说明如下:
准备拍照。当时 applicationDidEnterBackground:方法返回,系统需要一个 应用程序用户界面的图片,并使用生成的图像 过渡动画。如果您的界面中包含任何视图 敏感信息,您应该先隐藏或修改这些视图 applicationDidEnterBackground:方法返回。
这意味着您应修改applicationDidEnterBackground:
中的视图,使其按照您希望iOS在应用程序进入后台状态时自动显示的图片中显示。
还要记住以下几点:
你的app delegate的applicationDidEnterBackground:方法有 大约5秒钟完成任务并返回。在实践中, 这种方法应该尽快返回。如果方法有 在时间用完之前没有返回,你的应用程序被杀死并被清除 记忆。如果您还需要更多时间来执行任务,请致电 beginBackgroundTaskWithExpirationHandler:请求背景的方法 执行时间然后启动辅助中的任何长时间运行的任务 线。无论你是否开始任何后台任务,都可以 applicationDidEnterBackground:方法必须仍然在5内退出 秒。
答案 1 :(得分:0)
我记得,当应用程序是背景时,Apple代码会截取屏幕并将其存储起来。当您的应用程序重新启动时,它会显示屏幕截图,直到您的应用程序完成并接管。
简短的回答,我认为不可能避免内容的闪现。
你真的有两个选择,我建议你制作一个简短的“出现”动画来平滑过渡。如果您尝试使用重新登录提示或某些东西保护敏感材料,那将无法工作。如果你正在处理这样的情况,你需要在你进入后退状态时处理事情,而不是当你从它回来时。