1

通过pushViewController方法添加视图后,导航栏中会有一个后退按钮,用于将视图从堆栈中弹出。但是,似乎iOS在将视图从堆栈中弹出后不会销毁视图,那么它什么时候会被销毁?弹出视图时可以手动销毁吗?

4

2 回答 2

2

一般来说,模式是这样的:

- (void)pushSomeViewControllerOnStack
{
    SomeViewController* someViewController = [[SomeViewController alloc] initWithNibName:@"SomeView" bundle:nil];
    [self.navigationController pushViewController:someViewController animated:YES];
    [someViewController release];
}

换句话说,导航控制器将自己retain处理视图控制器,这意味着您需要release自己处理它,因为有一个init. 导航控制器也会在适当的时候负责释放这个控制器。

于 2010-09-03T16:41:14.340 回答
1

您应该在子类中实现viewDidUnloadanddealloc方法UIViewController

当一个UINavigationController视图控制器从其堆栈中弹出时,这些方法中的代码将被执行。

您应该阅读Apple 的 iOS 开发人员库中的 iOS视图控制器编程指南:导航控制器文档以及 和 类的类参考文档,UINavigationController以便UIViewController您更好地了解视图控制器的生命周期以及发生各种应用程序事件时会发生什么.

于 2011-10-07T20:25:39.520 回答