2013-05-02 162 views
0

當試圖從我的UITabBarController以編程方式呈現模態視圖控制器時出現以下錯誤:「警告:嘗試在其視圖不在窗口層次結構中的xyzTabBarViewController上呈現xyzLoginViewController!試圖呈現模態視圖控制器時出錯

代碼如下:

+ (void) openWithViewController:(UIViewController*) controller AndDelegate:(id) delegate 
{ 
    UIStoryboard *sb = [UIStoryboard storyboardWithName:@"LoginSignup" bundle:nil]; 
    xyzLoginViewController *vc = [sb instantiateViewControllerWithIdentifier:@"xyzLoginViewController"]; 
    vc.modalTransitionStyle = UIModalTransitionStyleCoverVertical; 
    vc.delegate = delegate; 
    [controller presentViewController:vc animated:YES completion:nil]; 
} 

我試圖從我的應用委託執行這一點,而且在viewDidAppear:我的標籤欄控制器的方法,但是這並沒有幫助。

我看過很多類似的問題,至今沒有運氣。

+0

你需要添加一個tabBarController的視圖,而不是tabBarController本身。 – 2013-05-02 20:36:43

+2

您傳遞給方法的控制器尚未呈現。您需要呈現該視圖控制器,然後執行該模式。 – 2013-05-02 20:39:21

回答

1
Attempt to present xyzLoginViewController on xyzTabBarViewController 
whose view is not in the window hierarchy 

你應該嚴肅認真地對待這個警告;它意味着它說的是什麼。在您進行此調用時,xyzTabBarViewController的視圖不在任何位置的應用程序窗口中。您已創建此實例,但其視圖不在窗口中。如果有一個xyzTabBarViewController的視圖在窗口中,它必須是不同 xyzTabBarViewController的視圖。

這真的都歸結於您所展示的代碼中的controller。但是既然你沒有展示controller來自哪裏,或者你已經做了什麼,那麼就沒有什麼可說的了。

相關問題