iPhone UINavigationController后退按钮缺失

问题描述:

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

每个视图都有一个“主页按钮”,它将调用“popToRootViewControllerAnimated”并返回到主菜单。在View2中按下该按钮时,它将返回到主菜单。但是,从主菜单转到View1时,后退按钮将丢失。这是唯一受到这个问题困扰的观点。

带来这种情况的是我们'懒洋洋地初始化'View1。换句话说,我们在主菜单保持到视图1的参考,使我们手头有它不断地(以保持该视图的状态)。

奇怪的是,这个问题只发生在按下View2的'Home按钮'。 View3没有问题。

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

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

有没有人有任何想法如何解决这个问题?

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

+0

我已经这样做了 - 所有的意见(包括主菜单)具有上面的代码。 – Mabbage 2010-09-17 07:31:25

+0

你为什么要释放backBarButtonItem?你不拥有它。 – jrtc27 2010-09-17 07:46:10

+0

我相信这是采取代码另一个问题上的计算器有关自定义后退按钮。无论有没有这条线,它都没有区别。我已经评论了任何会改变后退按钮或导航栏的问题,并且问题仍然存在。 – Mabbage 2010-09-17 09:47:38