使用PresentViewController是否从内存中释放呈现的ViewController?

时间:2014-12-14 22:41:55

标签: ios objective-c memory-management uiviewcontroller

我想知道如果使用PresentViewController从堆栈中释放呈现的viewController,我在文档中找不到任何关于此的信息。

如果没有,DismissViewController会释放以前的viewcontroller吗?

感谢。

编辑:

我不确定你为什么要暂停这个问题。我的问题更具概念性:我需要知道如何从内存中释放UIViewController 。我在iOS文档中找不到任何信息。

3 个答案:

答案 0 :(得分:1)

呈现模态视图控制器会将新视图控制器置于上一个视图控制器之上。当您关闭模态时,旧的视图控制器会再次显示。

如果旧的视图控制器被释放,那么当模态被解除时,它将无法再次显示。

答案 1 :(得分:1)

不,执行演示的视图控制器不会被释放,但是它的视图可能会被释放,如果它的视图被释放,那么当呈现的视图控制器被解除时,将再次调用viewDidLoad。你的代码必须为这种可能性做好准备。

例如,如果您在viewDidLoad中创建了一个模型对象,那么当它呈现的视图控制器被取消时,该对象可能会被销毁并被新实例替换。

答案 2 :(得分:0)

呈现视图控制器不会释放呈现视图控制器。为什么会这样?

当然,解除所呈现的视图控制器不会释放原始呈现视图控制器,但它肯定会导致被解除的视图控制器被释放。如果不是,则存在问题。典型问题是所呈现的视图控制器中的参考周期。