2009-08-31 64 views
0

我的主视图控制器(代表我的应用程序中的主菜单)有一个简单的UIView和几个子视图。我正在使用模式设计模式,并在最终返回到主菜单之前切换到多个其他视图控制器。问题是,在我的其他视图控制器(而不是主菜单)中,我经常加载数据量大的图像等等,有时会导致主菜单(它当前不在屏幕上)卸载其视图以响应记忆警告。问题是,当我最终切换回主菜单时,屏幕全是黑色,除了少数几个UILabel外,其余的都没有了。在这一点上,我想重新加载我的观点并开始新鲜。但在文档中,它表示你不应该直接调用-loadView。我怎样才能重新加载我的观点?如何在内存卸载后重新加载UIView?

回答

6

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

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

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