如何在内存卸载后重新加载UIView?

时间:2009-08-31 08:33:30

标签: iphone memory uikit uiview uiviewcontroller

我的主视图控制器(代表我的应用程序中的主菜单)有一个带有几个子视图的简单UIView。我正在使用模态类型的设计模式,并在最终返回主菜单之前切换到多个其他视图控制器。问题是,在我的其他视图控制器(不是主菜单)中,我经常加载数据量大的图像等有时会导致主菜单(当前不在屏幕上)卸载其视图以响应记忆警告。问题是,当我最终切换回我的主菜单时,屏幕全是黑色的,除了几个UILabel之外都已经取消了。此时,我想重新加载我的视图并重新开始。但是在文档中,它说你永远不应该直接调用-loadView。如何重新加载我的视图?

1 个答案:

答案 0 :(得分:6)

在这种情况下,请检查isViewLoaded属性 - 它应该返回NO。如果视图已正确卸载,isViewLoaded将返回NO,并且视图控制器上的view将自动再次加载到视图中。

检查自定义视图卸载代码 - 您应该从属于您的视图层次结构([[self view] removeFromSuperview])中删除所有内容。

如果您没有任何卸载代码,请确保您没有过度保留一些视图,这会在卸载时导致问题。