0

这是我调用的代码,用于在我的整个标签栏应用程序上弹出一个导航控制器:

LoginViewController *logController = [[LoginViewController alloc] initWithNibName:@"LoginViewController" bundle:nil];
EditNavController *navController = [[EditNavController alloc] initWithRootViewController:logController];
[self.navigationController presentModalViewController:navController animated:NO];

我在日志中收到以下警告:

Warning: Attempt to present <EditNavController: 0xa95b980> on <MyTabController: 0x1152fd60> whose view is not in the window hierarchy!

该代码有效,但我想以正确的方式执行此操作,因此不会出现此警告。

我该如何解决?

4

1 回答 1

2

如果 MyTabController 是一个 tabbarcontroller,你应该使用

[self presentViewController:navController animated:YES completion:^{}];

请记住 presentModalViewController:animated:自 iOS6 以来已弃用。我认为问题是你试图在标签栏的导航控制器中显示 viewController,它不在视图层次结构中(因为它没有显示)。相反,您应该在 Tab Bar 控制器(视图层次结构中的 IS)中显示模态视图控制器。我希望它有帮助!

于 2013-06-11T00:49:11.617 回答