当试图从我的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:方法中执行此操作,但这并没有帮助。
我看过许多类似的问题,到目前为止没有运气。
答案 0 :(得分:1)
Attempt to present xyzLoginViewController on xyzTabBarViewController
whose view is not in the window hierarchy
你应该认真对待这个警告;它完全意味着它所说的。在您进行此调用时,xyzTabBarViewController的视图不在您应用程序窗口的任何位置。您已创建此实例,但其视图不在窗口中。如果是窗口中的xyzTabBarViewController视图,它必须是不同的 xyzTabBarViewController的视图。
这真的归结为您展示的代码中的controller
。但是既然你没有显示controller
来自哪里,或者你用它做了什么,那就没有什么可说的了。