2015-06-10 65 views
0

我有一个iOS应用程序(用Objective-C编写),在后台运行时,它将执行后台任务来检测您是否移动速度大于5mph。如果发生这种情况(行驶时间大于5英里/小时),应用程序进入前台时会显示一个特定的屏幕(屏幕123)。当iOS应用程序进入前台时更改屏幕

此功能目前可行,但是当应用程序显示在屏幕上时,您只需简单地查看在屏幕123显示之前从上次使用该应用程序(约1秒钟)后查看的最后一个屏幕。有没有什么办法让应用程序在后台运行,以及什么时候它被带到前台来立即显示screen123(没有显示前一个屏幕)?

导致screen123显示的代码在AppDelegate中的applicationWillEnterForeground之内。

+0

你可以在'applicationWillEnterForeground'中提供你用来显示screen123的代码吗? – Brian

+1

您是否尝试过在applicationDidEnterBackground中隐藏不需要的屏幕? – Gismay

回答

1

iOS使用您上次状态的快照来将转换延迟隐藏回您的应用。你可能看到了这个。

请参阅Apple的"Strategies for Handling App State Transitions"中的“准备拍摄您的应用的照片”。

你会努力完全摆脱它。你应该想办法平滑过渡。也许你可以有一个屏幕只包含不变的内容,然后在屏幕上淡出“< 5mph”或“> 5mph”的内容。

+0

谢谢你们......这有帮助! – Gells

相关问题