iOS开源智能控制器推送/弹出库



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

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

有这样的开源项目吗?这似乎不是一个不寻常的问题,我不想重新发明轮子。

有一段时间,您需要确保对viewDidLoadviewDidUnload的调用正确匹配,以便可以以这种方式处理内存警告。从iOS 6开始,这个不再需要了。

正如viewDidUnload的文档中所说:

在iOS 5及更早的版本中,当出现内存不足的情况时当前视图控制器的视图不需要,系统可以选择在视图控制器的视图已经释放。此方法是您执行任何最终清理的机会。如果你的视图控制器存储了对视图或其子视图,你可以用这个方法来释放那些引用。你还可以使用此方法删除对任何对象的引用您创建以支持视图,但现在不再需要景色消失了。您不能使用此方法来释放用户数据或者其他不能轻易重建的信息。

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

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

最新更新