2012-10-22 79 views
2

我正在使用iOS的手機應用程序編寫應用程序。我試圖在應用程序進入背景時顯示啓動畫面。應用程序進入背景時顯示啓動畫面

(void)applicationWillResignActive:(UIApplication *)application [...]

applicationWillResignActive:我打電話JavaScript函數,並使用科爾多瓦的方法cordova.exec(null,null, "SplashScreen, "show", [])顯示啓動畫面。但看起來,這不起作用。

當我恢復應用程序時,應用程序首先將先前的狀態轉換爲啓動畫面,但我希望在應用程序恢復時顯示啓動畫面。我怎麼能做到這一點?

+0

anarnth,您是如何在您的客觀c類中調用javaScript函數的? – Dnaso

回答

3

得到這個工作:

- (void) applicationWillResignActive:(UIApplication *)application { 
    //Call to JS to change to splash 
[[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.02 
} 

允許當前runloop爲一瞬間

的答案運行欲瞭解更多信息,請查看以下鏈接:

The exact moment iOS takes the view snapshot when entering background?

0

正如你所見,實際的視圖層次不會被修改,直到應用程序恢復活動。嘗試設置在-applicationWillResignActive屬性/變量:表示你應該顯示啓動畫面,當應用程序再次變得活躍,後來居然立刻展現它-applicationDidBecomeActive:

+0

馬特,謝謝你的回覆。我嘗試了你的建議。但是,當應用程序被帶到前臺時,我仍然先看到以前的狀態,然後切換到飛濺狀態。 – ananth85

+0

你的「show」方法是否顯示動畫?因爲,您可能會嘗試在沒有動畫的情況下進行更改,並強制進行佈局/顯示。另外,如果您在應用程序委託方法中做這種想法時遇到問題,可以嘗試將它放在根視圖控制器的viewWillAppear中。對不起,導致虛假。 – Matt

相關問題