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

时间:2011-01-28 05:13:58

标签: iphone objective-c ios uinavigationcontroller

我正在iOS中实现购物车。

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

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

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

2 个答案:

答案 0 :(得分:1)

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

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

如果您这样做,您以后无需担心这些视图控制器。它们将在完成后由UINavigationController释放。

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

[self.navigationItem setHidesBackButton:YES];

答案 1 :(得分:0)

您可以通过以下方式告诉它转到特定的视图控制器:

[myNavController popToRootViewControllerAnimated:YES];

或者,还有一个UINavigationController方法为它提供一个视图控制器数组,它应该呈现第一个。