【问题标题】:How to re-load UIView after memory unload?内存卸载后如何重新加载 UIView?
【发布时间】:2010-11-24 07:05:03
【问题描述】:

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

【问题讨论】:

    标签: iphone memory uikit uiview uiviewcontroller


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多