2014-09-28 25 views
2

在某些情況下,我想設置特定的特定inital view。 基本上要分開入門和應用程序的實際使用。 目前,我使用此代碼這樣做:實例化AppDelegate中的初始ViewController在初始視圖之前給出了閃屏黑屏

- (void)checkWhereUserIsInOnboarding { 

    UIStoryboard *mainstoryboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; 
    self.window = [[UIWindow alloc] initWithFrame:UIScreen.mainScreen.bounds]; 

    if([authStatus isEqual:@3]){ // did get past certain point in onboarding 
    UIViewController *initialViewController = [mainstoryboard instantiateViewControllerWithIdentifier:@"connectNav"]; 
    self.window.rootViewController = initialViewController; 
    [self.window makeKeyAndVisible]; 
    } 
    else if(currentUser.objectId == nil){ //no user; he/she is new to the app 
    UIViewController *initialViewController = [mainstoryboard instantiateViewControllerWithIdentifier:@"loginNav"]; 
    self.window.rootViewController = initialViewController; 
    [self.window makeKeyAndVisible]; 
    } 
    else{//fully featured users 
    UIViewController *initialViewController = [mainstoryboard instantiateViewControllerWithIdentifier:@"tabbarcontroller"]; 
    self.window.rootViewController = initialViewController; 
    [self.window makeKeyAndVisible]; 
    } 

} 

因爲我需要的應用程序的生命週期內,以檢查此多次,這個功能在ApplicationDidBecomeActive方法運行。

但是,當我將這些VC的其中一個作爲初始視圖進行實例化時,我總是會獲得一個大約100毫秒的黑屏,之後應用會進入右側屏幕。

我該如何解決這個問題?

回答

0

「黑屏」似乎意味着你的應用程序在後臺被關閉。如果您更換應用程序,然後調用應用程序切換器,您的應用程序會顯示爲黑屏嗎?

作爲一個起點,它可能是一個很好的運行在儀器和看內存等事情,以確保IOS沒有關閉它。

+0

你是什麼意思'調用應用程序切換器'? – bdv 2014-09-28 23:47:25

+0

雙擊主頁按鈕... – Craig 2014-09-29 02:03:12

+0

好吧:)不顯示'閃爍',當我這樣做,雖然.. – bdv 2014-09-29 10:29:23