【问题标题】:iOS open source smart controller push/pop lib for uinavigationcontroller?用于 uinavigationcontroller 的 iOS 开源智能控制器推送/弹出库?
【发布时间】:2014-06-23 19:07:17
【问题描述】:

我有一个应用程序,用户可以在其中无限深入地推送视图(推送到导航堆栈)。在某些时候,会出现内存警告。我想从导航控制器中删除视图控制器并释放它们。如果用户回到那些视图控制器,我想重新创建视图控制器并将它们推回到堆栈中的正确位置。

这是思考这个问题的正确方法吗?

是否有这样做的开源项目?这似乎不是一个罕见的问题,我宁愿不重新发明轮子。

【问题讨论】:

    标签: ios objective-c uinavigationcontroller


    【解决方案1】:

    曾几何时,您需要确保对viewDidLoad 和viewDidUnload 的调用正确匹配,以便可以通过这种方式处理内存警告。从 iOS 6 开始,这不再需要。

    正如viewDidUnload 的文档中所说:

    在 iOS 5 及更早版本中,当发生内存不足的情况并且 不需要当前视图控制器的视图,系统可以选择 在视图控制器的视图被调用后调用此方法 释放。这种方法是您执行任何最终清理的机会。如果 您的视图控制器存储了对视图或其 子视图,您可以使用此方法释放这些引用。你 也可以使用此方法删除对任何对象的引用 您创建以支持视图,但现在不再需要 视图消失了。您不会使用此方法发布用户数据 或任何其他无法轻松重新创建的信息。

    在 iOS 6 及更高版本中,清除对视图和其他对象的引用 你的视图控制器是不必要的。

    如果您手动将大型对象保存在内存中,例如图像或视频数据,那么您可以覆盖 didReceiveMemoryWarning 以在必要时释放这些对象。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-17
      • 2012-12-23
      • 2012-08-17
      • 2015-12-18
      • 2014-12-07
      相关资源
      最近更新 更多