1

如何释放 UINavigationController 中的所有视图控制器,而不释放 UINavigationController 对象本身。

我的情况是,我有一个带有一组视图控制器的导航控制器。在某些情况下,我想为可用的导航控制器设置一个新的视图控制器作为 rootViewController。所以我使用了

"[navigationcontrollerObj initWithRootViewController:viewController]"; 方法。

它工作正常,我的新视图层次结构设置正确。但我的问题是,以前推送的视图控制器没有被释放。

这就是我之前推送视图控制器的方式

[navigationcontrollerObj pushViewController:viewControllerObj]; viewControllerObj 释放];

任何帮助请......

4

2 回答 2

3

如果你的意思是弹出到 rootviewcontroller,你可以试试这个:

[self.navigationController popToRootViewControllerAnimated:NO];

如果您没有在其他任何地方保留它,这也会释放所有视图控制器。确保你在推送后释放了所有的视图控制器。完成此操作后,您可以将任何视图控制器设置为 rootviewcontroller。

于 2013-01-23T07:46:50.367 回答
1
[self.navigationController popToRootViewControllerAnimated:NO]; will pop all other view controller
- (void)setViewControllers:(NSArray *)viewControllers animated:(BOOL)animated // use this function to change the root view controller
于 2013-01-23T08:43:07.610 回答