内存管理如何在导航控制器上创建视图控制器

时间:2014-02-28 15:56:20

标签: ios uiviewcontroller uinavigationcontroller

我有一个使用导航控制器的应用。视图显示从牌组中挑选一张荒芜牌的结果。选择卡的逻辑以及使用的选项在每个视图的OnCreate中确定。

在浏览完视图后,我回到根视图。现在,当我回到vues时,显示相同的信息并且没有调用oncreate。看起来当我回到根视图时,从内存中弹出的vues没有被释放,所以它使用的是同一个对象。这是它的假设是如何工作,或者我做错了什么,所以popToRootViewController没有释放使用的视图?

我正在使用以下代码转到下一个视图

if (mGet == nil) {
    mGet = [[cGet  alloc] initWithNibName:@"cGet" bundle:[NSBundle mainBundle]];
}

1 个答案:

答案 0 :(得分:0)

您可以使用-viewDidLoad在实例化所有视图对象时执行视图控制器的一次性设置。就在viewController呈现其视图之前,执行-viewWillAppear:。就在viewController的视图消失之前,-viewWillDisappear:被执行。因此,当您需要响应显示其视图的viewController或屏幕外时,请在视图控制器中覆盖-viewWillAppear:-viewWillDisappear:

查看Apple documentation for UIViewController了解这些详细信息。