我有一个从 iOS 5 迁移到 iOS 6 的应用程序,但遇到 UINavigationController 无法正确显示的问题。
在我的应用程序中,用户必须登录,并且在按下按钮后会在模式视图中显示登录屏幕。
WelcomeViewController.m
- (IBAction)signInButtonSelected:(id)sender
{
LoginViewController *loginViewController = [[LoginViewController alloc] initWithNibName:nil bundle:nil];
[self.navigationController presentViewController:loginViewController animated:YES completion:^{}];
}
视图正确加载并允许用户输入他们的登录凭据。但是,当他们按下登录按钮时,会显示下一个视图,并且它应该在顶部有一个 UINavigationBar,除非它没有。如果我退出应用程序并重新启动它,UINavigationBar 会正确显示在该视图中。我不知道为什么从登录视图到登录屏幕会隐藏导航控制器。
这是按下登录按钮时执行的代码,用于加载下一个视图:
LoginViewController.m
WallViewController *wallViewController = [[WallViewController alloc] initWithNibName:nil bundle:nil];
[(UINavigationController *)self.presentingViewController pushViewController:wallViewController animated:YES];
[self.presentingViewController dismissViewControllerAnimated:YES completion:nil];
如果有人可以解释为什么会发生这种情况,那就太好了!
谢谢!