我的主视图控制器(代表我的应用程序中的主菜单)有一个带有几个子视图的简单UIView。我正在使用模态类型的设计模式,并在最终返回主菜单之前切换到多个其他视图控制器。问题是,在我的其他视图控制器(不是主菜单)中,我经常加载数据量大的图像等有时会导致主菜单(当前不在屏幕上)卸载其视图以响应记忆警告。问题是,当我最终切换回我的主菜单时,屏幕全是黑色的,除了几个UILabel之外都已经取消了。此时,我想重新加载我的视图并重新开始。但是在文档中,它说你永远不应该直接调用-loadView。如何重新加载我的视图?
答案 0 :(得分:6)
在这种情况下,请检查isViewLoaded
属性 - 它应该返回NO
。如果视图已正确卸载,isViewLoaded
将返回NO
,并且视图控制器上的view
将自动再次加载到视图中。
检查自定义视图卸载代码 - 您应该从属于您的视图层次结构([[self view] removeFromSuperview]
)中删除所有内容。
如果您没有任何卸载代码,请确保您没有过度保留一些视图,这会在卸载时导致问题。