2014-09-25 11 views
2

工作,我用下面的代碼:上的其他頂級顯示視圖控制器,當應用程序啓動不iOS8上

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
    ... 
    window.rootViewController = self.viewController; 
    [window makeKeyAndVisible]; 

    if (self.requireLogin){ 
     [self.viewController presentViewController:self.loginViewController animated:NO completion:nil]; 
    } 
} 

所以我把loginViewController上的viewController的頂部。這適用於8之前的iOS,但在iOS 8上,您可以在少量時間內看到viewController。

有沒有簡單的方法來呈現在iOS 8視圖控制器沒有顯示它背後的東西?

編輯: 在日誌中注意到它也有「非平衡調用開始/結束外觀轉換」,所以認爲ios 8在self.viewController上運行一些動畫。有沒有辦法阻止它動畫?

+0

上self.viewController呈現self.viewController不分配self.requireLogin ???? – Tirth 2014-09-25 07:57:27

+0

代碼中的錯字,現在修復它 – Krzysztof 2014-09-25 07:58:46

回答

1

試試這個隱藏最初,然後取消隱藏它。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
    ... 
    window.rootViewController = self.viewController; 

    // Hide initially 
    window.rootViewController.view.hidden = YES; 

    [window makeKeyAndVisible]; 

    if (self.requireLogin){ 
     [self.viewController presentViewController:yourloginViewController animated:NO completion:^{ 

      // Unhide now 
      window.rootViewController.view.hidden = NO; 

     }]; 
    } 
} 

基礎上的反應,這似乎是不顯示啓動畫面,讓我更好的建議是

  1. 正如你知道的是/否顯示登錄視圖(基於self.requireLogin),您可以將窗口的rootviewcontroller作爲登錄視圖控制器。

    if (self.requireLogin){ 
    
        window.rootViewController = yourLoginViewController; 
    
    } 
    else{ 
    
        window.rootViewController = normalViewController; 
    
    } 
    
  2. 你仍然需要使用你的同樣的策略,然後添加在普通視圖控制器的一個的UIImageView,那麼目前登錄視圖控制器。

的選擇是你的:)

+0

爲什麼你需要隱藏rootViewController的視圖?它也可以不隱藏它,不是嗎? – Tirth 2014-09-25 08:01:00

+0

試過了,它顯示的是黑色的背景,而不是app的啓動畫面。 – Krzysztof 2014-09-25 08:01:14

+0

檢查更新的答案 – 2014-09-25 08:07:42

相關問題