我有一个无法释放的viewcontroller,因为它是一个具有额外功能的子类......无论如何,它们中有很多,我需要在屏幕外显示它们。
removeFromSuperView消除了视图,但它们仍保留在内存中。我可以从内存中删除视图的唯一方法是完全取消它。但是,当我访问viewcontroller.view时,它只会再次创建视图,不是吗?
在第一次绘制视图之前,视图本身不占用任何重要的记忆,所以......
理想情况下,我可以在需要时(屏幕上)将一个视图数组复制到viewcontroller.view中,当它们离开屏幕时完全释放到dealloc,这样Cocoa知道要摆脱任何内部显存正在分配。
有什么想法吗? 感谢
答案 0 :(得分:2)
要从控制器释放视图,请使用:
self.view = nil;
稍后,在'get'上下文中引用self.view
将重新创建视图(将从NIB重新加载或调用loadView
)。
此外,请勿明确向您的视图或任何对象发送dealloc
消息。
答案 1 :(得分:0)
您可以在
中销毁视图- viewWillDisappear:(BOOL)animated
并在
中重新创建- viewWillAppear:(BOOL)animated
视图控制器的方法