UINavigation控制器中未使用的视图会发生什么?

问题描述:

我正在iOS中实施购物车。UINavigation控制器中未使用的视图会发生什么?

我正在使用UINavigationController来为进程的每个步骤显示UIViewControllers。用户可以使用后退按钮并更改内容。

但他们提交订单后,我不希望他们回去。在没有使用导航控制器的后退按钮的情况下显示视图的正确方法是什么?

当你这样做时,以前的UIViewControllers会发生什么?他们是否被释放?显然我不需要他们。我必须手动释放它们吗?

您必须解除分配这些视图控制器。否则,他们将开始泄漏。我想,你会以某种方式推动视图控制器类似于以下内容。

MyViewController *myViewController = [[MyViewController alloc] init]; 
[self.navigationController pushViewController:myViewController animated:YES]; 
[myViewController release]; 

如果你是这样做的,你以后就不必担心这些视图控制器。它们将在UINavigationController完成时由它们释放。

隐藏后退按钮:在最后一个视图控制器的loadView方法中添加以下行。

[self.navigationItem setHidesBackButton:YES]; 
+0

是的,我正在按这样的意见 如何加载没有后退按钮的最后一个视图? – Janaka 2011-01-28 05:56:30

你可以告诉它去一个特定的视图控制器或者与类似:

[myNavController popToRootViewControllerAnimated:YES]; 

或者,也就是一个UINavigationController方法给它的视图控制器的阵列,它应该呈现第一。