以下是我打算在整个标签栏应用中弹出导航控制器的代码:
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!
代码有效,但我想以正确的方式进行,因此不会出现此警告。
我该如何解决这个问题?
答案 0 :(得分:2)
如果MyTabController是tabbarcontroller,则应使用
[self presentViewController:navController animated:YES completion:^{}];
记住presentModalViewController:animated:是deprecated since iOS6。我认为问题是你试图在tabbar的导航控制器中呈现viewController,它不在视图层次结构中(因为它没有显示)。相反,您应该在Tab Bar控制器中呈现模态视图控制器(在视图层次结构中是IS)。 我希望它有所帮助!