2014-10-03 31 views
0

在我的故事板中,我有兩個UIViewControllers。初始視圖控制器是一個顯示簡單圖像的加載/啓動畫面。第二個視圖控制器是一個UIWebView。目前的ViewController錯誤

我想在應用完全加載後用UIWebView視圖控制器替換加載視圖控制器。

裏面我加載視圖控制器,我有這樣的代碼來呈現的UIWebView:

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; 
UIViewController *viewController = [storyboard instantiateViewControllerWithIdentifier:@"WebView"]; 

[self presentViewController:viewController animated:NO completion:^(void){}]; 

然而,這段代碼引發以下錯誤:

Warning: Attempt to present <WebController: 0x145617960> on <LoadingController: 0x145610c40> whose view is not in the window hierarchy! 

難道我做錯了什麼?

感謝您的任何幫助/建議。

+0

的也許這就是解決方案http://stackoverflow.com/問題/ 11862883 /它 - 視圖 - 是 - 不在位的窗口層次結構 – 2014-10-03 14:05:23

回答

0

如果您的代碼塊:

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; 
UIViewController *viewController = [storyboard instantiateViewControllerWithIdentifier:@"WebView"]; 

[self presentViewController:viewController animated:NO completion:^(void){}]; 

是在你的方法加載時,當視圖控制器被加載諸如viewDidLoadviewDidAppear:,或任何類似的方法被稱爲視圖控制器,問題是因爲您的網絡視圖控制器沒有任何內容,因爲selfpresentViewController中引用了加載視圖控制器。我的建議是把它放在你的加載視圖控制器和調度的viewDidAppear:一秒鐘之後,以確保您的加載視圖控制器實際上是能夠呈現它

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.1f * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ 
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; 
    UIViewController *viewController = [storyboard instantiateViewControllerWithIdentifier:@"WebView"]; 

    [self presentViewController:viewController animated:NO completion:^(void){}]; 
}); 
相關問題