出于某种原因,如果我尝试使用左上角的后退按钮返回主菜单,则只有标题返回上一个菜单,而不是视图控制器。只有当我使用其他按钮显式调用popViewControllerAnimated时,视图控制器才会返回上一个菜单。
无论如何要解决这个问题?我想我编错了。尝试谷歌搜索,但找不到像我这样的任何案件。
答案 0 :(得分:0)
我遇到了完全相同的问题。这是我的代码:
- (IBAction) showGameView:(id) sender {
gameView = [[TCGameViewController alloc] initWithNibName:@"TCGameViewController" bundle:[NSBundle mainBundle]];
[self.navigationController pushViewController:gameView animated:YES];
[gameView release];
}
当我完成gameView时,我会这样做:
[self.navigationController setNavigationBarHidden:NO animated:YES];
但是当我按下“后退”按钮时所做的一切都是在导航栏中循环,但从不弹出视图。我甚至不知道如何调试它。
在我的另一个视图中,“infoView”我调用的代码与之前相同,只是NavBar永远不会被隐藏,但它的工作正常。
帮助!
答案 1 :(得分:0)
在自定义视图控制器中覆盖以下方法时,可能会发生此问题:
- (UINavigationItem*)navigationItem
但是您没有为返回的 UINavigationItem 的 leftBarButtonItem 属性指定 UIBarButtonItem 。
如果您使用自定义navigationItem,并且想要标准的后退按钮功能,您可以添加如下方法(请记住,每个UIViewController都有对包含它的 navigationController 的引用):
- (void)backButtonTapped
{
[self.navigationController popViewControllerAnimated:YES];
}
然后按如下方式设置自定义navigationItem的一部分:
- (UINavigationItem*)navigationItem
{
UIBarButtonItem* newLeftBarButton = [[UIBarButtonItem alloc] initWithTitle:@"Back"
style:UIBarButtonItemStyleBordered
target:self
action:@selector(backButtonTapped)];
UINavigationItem* navigationItem = [[[UINavigationItem alloc] init] autorelease];
希望这有帮助。