感谢您的时间,这里是我的应用程序结构:它包含一个MainController和一个LoginController,当用户知道应用程序时,首先要判断登录状态,如果它是'是的,然后将childController(aka.MainController)设置为RootViewController' s(aka,NavigationController),否则当用户输入用户名和密码时,将childController(aka.LoginController)设置为RootViewController' s(aka,NavigationController)正确地,将childController(aka.MainController)设置为RootViewController' s(又名,NavigationController)
当用户单击属于MainController的设置控制器中的退出按钮时,则:
LoginController *vcLogin = [[LoginController alloc] init];
UINavigationController *ncRoot = [[UINavigationController alloc] initWithRootViewController:vcLogin];
[[UIApplication sharedApplication].keyWindow setRootViewController:ncRoot];
现在,出现问题,控制台打印: 尝试关闭其视图当前不显示的模态视图控制器。
self = <_UIModalItemAppViewController: 0x9da0060> modalViewController =<_UIModalItemsPresentingViewController: 0x9e9bac0>
你知道错误的地方在哪里吗?
答案 0 :(得分:0)
这不是设置新UIViewController的方法。您应该使用presentViewController来呈现模态视图控制器。如果你想在没有动画的情况下使用pushViewController也是可能的。但是改变rootViewController是一个坏主意。由于这不是在iOS中如何设置ViewController层次结构。