2013-05-02 121 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来自哪里,或者你已经做了什么,那么就没有什么可说的了。

相关问题