2016-03-08 35 views
0

當用戶真正轉到後臺時,需要顯示黑屏。 (不是applicationWillResignActive)。當應用程序轉到後臺時更改rootview控制器(applicationDidEnterBackground)

因此,我在applicationDidEnterBackground中更改了我的根視圖控制器。

//Before this, there will be Sync web-service call...normally, it is fast..time out is 2 second 
dispatch_async(dispatch_get_main_queue(), ^{ 
    UIViewController *vc = [[UIViewController alloc] init]; 
    [vc.view setBackgroundColor:[UIColor blackColor]]; 
    [AppDelegate instance].window.rootViewController = vc; 
}); 

問題是它不起作用。我認爲這是因爲沒有足夠的時間。所以我研究了延長背景時間,但仍然不行。我應該怎麼做才能在用戶完全進入背景時顯示黑屏(當用戶切換應用程序時,他們會將我的應用程序視爲黑屏)?

objective c - Proper use of beginBackgroundTaskWithExpirationHandler

+0

您是否正在爲用戶添加隱私級別?當用戶返回到應用程序時,您是否要更改回原始視圖控制器? – DookieMan

+0

是的。我會改回原來的VC。 –

+0

該應用程序委託中的applicationDidEnterBackground回調代碼段中的代碼片段?不要將其包裝在'dispatch_async'中。在該方法返回後獲取快照,以便通過這樣做導致發生快照後發生vc更改。 – dan

回答

0

嘗試增加新的視圖到你的窗口,而不是改變窗口的根視圖控制器,當應用程序進入後臺和刪除/隱藏按您的要求。將視圖的背景顏色設置爲黑色。祝你好運。

相關問題