可以释放viewcontroller.view而不释放viewcontroller?

时间:2009-07-29 11:46:22

标签: iphone objective-c cocoa-touch uiview uiviewcontroller

我有一个无法释放的viewcontroller,因为它是一个具有额外功能的子类......无论如何,它们中有很多,我需要在屏幕外显示它们。

removeFromSuperView消除了视图,但它们仍保留在内存中。我可以从内存中删除视图的唯一方法是完全取消它。但是,当我访问viewcontroller.view时,它只会再次创建视图,不是吗?

在第一次绘制视图之前,视图本身不占用任何重要的记忆,所以......

理想情况下,我可以在需要时(屏幕上)将一个视图数组复制到viewcontroller.view中,当它们离开屏幕时完全释放到dealloc,这样Cocoa知道要摆脱任何内部显存正在分配。

有什么想法吗? 感谢

2 个答案:

答案 0 :(得分:2)

要从控制器释放视图,请使用:

self.view = nil;

稍后,在'get'上下文中引用self.view将重新创建视图(将从NIB重新加载或调用loadView)。

此外,请勿明确向您的视图或任何对象发送dealloc消息。

答案 1 :(得分:0)

您可以在

中销毁视图
- viewWillDisappear:(BOOL)animated

并在

中重新创建
- viewWillAppear:(BOOL)animated

视图控制器的方法

相关问题