iOS:UINavigationControllers的内存管理

时间:2014-04-04 04:04:23

标签: ios7 uinavigationcontroller

我在StackOverflow中看到了类似的问题,但我的问题完全不同。 我正在开展一个项目,用户必须经过几个视图并且堆积了多个视图。在UINavigationController中作为系列。

当用户移动导航控制器时,他必须填写表格中的数据并继续。用户也可以返回并更改信息。 (当然,当他更改信息时,即将出现的形式中的问题可能会也可能不会改变)

现在问题是,请回答,iOS是否将所有表单数据保存在内存中或写入一些临时内存并将其检索回来? iOS管理员如何在先前视图的数据上显示数据?

谢谢你!

1 个答案:

答案 0 :(得分:0)

  1. 将ViewControllers添加到NavigationController时,堆叠导航将被填充。

  2. UINavigationController将添加的视图控制器保留在内存中,直到删除视图控制器。 (来自导航控制器)

  3. 因此,如果您要回到堆栈中间的视图控制器,则添加了lsat的视图控制器可能会被删除,并且您将丢失数据。

  4. 处理此问题的最佳方法是保留数据或创建模型对象并传递它。

  5. 这适用于iOs 6/7,如果您支持iOS 5,则可以在接收“didReceiveMemoryWarning”时卸载视图,然后您将丢失数据。所以不要将数据存储在视图对象中使用模型或保留它们