尝试呈现模态视图控制器时出错

时间:2013-05-02 20:34:22

标签: ios objective-c cocoa-touch

当试图从我的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];
}

我已尝试从我的app委托执行此操作,也尝试在我的标签栏控制器的viewDidAppear:方法中执行此操作,但这并没有帮助。

我看过许多类似的问题,到目前为止没有运气。

1 个答案:

答案 0 :(得分:1)

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

你应该认真对待这个警告;它完全意味着它所说的。在您进行此调用时,xyzTabBarViewController的视图不在您应用程序窗口的任何位置。您已创建此实例,但其视图不在窗口中。如果窗口中的xyzTabBarViewController视图,它必须是不同的 xyzTabBarViewController的视图。

这真的归结为您展示的代码中的controller。但是既然你没有显示controller来自哪里,或者你用它做了什么,那就没有什么可说的了。