2015-06-10 64 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

相關問題