0

我有一个从 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];

如果有人可以解释为什么会发生这种情况,那就太好了!

谢谢!

4

1 回答 1

0

弄清楚了。在我的 App Delegate 中,我放置了:

navController.navigationBar.hidden = YES;

它会在用户登录后隐藏导航栏。不完全确定为什么应用程序委托中的这会影响以后的视图。但是一旦它被删除,它就可以完美地工作!

谢谢您的帮助!

于 2013-02-02T01:52:24.153 回答