iPhone UINavigationController后退按钮丢失

时间:2010-09-16 18:49:12

标签: iphone uinavigationcontroller

我正在为iPhone创建一个基于导航的应用程序,其中NavigationController的根视图是主菜单(主页)。还有3个其他视图(名为View1,View2和View3),可以这种方式访问​​;主菜单 - > View1 - > View2 - > VIEW3。

每个视图都有一个“主页按钮”,它将调用“popToRootViewControllerAnimated”并返回主菜单。在View2中按此按钮时,它将返回主菜单。但是,当您从主菜单转到View1时,将缺少“后退”按钮。这是唯一遭遇此问题的View。

带来这个问题的是我们'懒洋洋地'初始化'View1。换句话说,我们在主菜单中保留对View1的引用,以便我们随时掌握它(以保持该视图的状态)。

奇怪的是,只有按下View2中的“主页按钮”才会出现此问题。使用View3没有问题。

在每个视图的'ViewWillAppear'方法中,我们有以下代码,它们会向视图的NavigationBar添加一个后退按钮;

[self.navigationItem.backBarButtonItem release];
UIBarButtonItem* backButton = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil];
self.navigationItem.backBarButtonItem = backButton;

有没有人知道如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

您必须在以前的视图控制器中应用此代码,因为后退按钮取决于导航堆栈中可见视图控制器上方的视图控制器。