2009-07-29 102 views
1

我有一个viewcontroller,它不能被释放,因为它是一个具有额外功能的子类......无论如何,它们中有很多,我需要在离开屏幕时发布视图。可能释放viewcontroller.view而不释放viewcontroller?

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

,直到他们被吸引首次本身不占用任何显著内存的意见,所以...

理想我会的意见我可以[复制]进入viewcontroller.view当阵列它们在屏幕上需要(屏幕上)并完全释放以释放,以便Cocoa知道摆脱它分配的任何内部图形内存。

有什么想法?
感谢

+0

我不明白,为什么你不能释放视图控制器,如果它的“具有额外功能的子类”? – Jasarien 2009-07-29 12:45:13

回答

2

要从控制器释放鉴于

- viewWillAppear:(BOOL)animated 

方法重新创建它,用途:

self.view = nil; 

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

此外,绝不要将dealloc消息显式发送到您的视图或任何对象。

0

可以破坏

- viewWillDisappear:(BOOL)animated 

的观点,并在您的视图控制器