如何销毁pushViewController添加的视图?

时间:2010-09-03 15:54:56

标签: iphone ios uiviewcontroller uinavigationcontroller pushviewcontroller

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

2 个答案:

答案 0 :(得分:2)

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

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

换句话说,导航控制器将自己retain视图控制器,这意味着你 需要自己release,因为它有一个{{ 1}}。导航控制器还将在适当的时候释放该控制器。

答案 1 :(得分:1)

您应该在viewDidUnload子类中实施deallocUIViewController方法。

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

您应该阅读Apple的iOS开发人员库中的View Controller Programming Guide for iOS: Navigation Controllers文档以及UINavigationControllerUIViewController类的类参考文档,以便您更好地了解视图控制器的生命周期以及各种应用程序事件发生时的预期结果。