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: 方法中执行此操作,但这并没有帮助。

我已经查看了许多类似的问题,但到目前为止还没有运气。

4

1 回答 1

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

你应该认真对待这个警告;它的意思正是它所说的。在您进行此调用时,xyzTabBarViewController 的视图不在您应用程序的窗口中的任何位置。您已经创建了这个实例,但它的视图不在窗口中。如果窗口中xyzTabBarViewController 的视图,那它肯定是不同的 xyzTabBarViewController 的视图。

这实际上都归结为controller您展示的代码中的内容。但是由于您没有显示controller来自哪里,或者您还用它做了什么,所以没有更多可说的。

于 2013-05-02T20:41:06.977 回答