加载类似应用程序的最佳方式是在它终止时的先前状态

时间:2008-11-21 04:13:55

标签: iphone cocoa-touch state

我想学习重新加载应用程序状态的最佳实践,这样当我的应用程序启动时,它应该在再次打开时自动加载“正确”的视图/子视图。

在我的特定情况下,我的应用程序有一堆视图控制器,每个都负责UITableView。我希望我的应用程序在再次打开时“跳转”到我的表视图层次结构中的正确节点。

4 个答案:

答案 0 :(得分:5)

以Marc所说的为基础,假设您有一个基本视图控制器,然后是一个或多个级别的“向下钻取”,使用[navigationController pushViewController: viewController animated: NO]将所有视图控制器加载到“当前”控制器。然后,当用户点击“返回”按钮时,将向他们显示预先加载的前一个视图控制器。一个很好的例子是“Contacts”应用程序,它预加载Groups视图控制器,然后在当前组(通常是“All Contacts”)上推送视图控制器。

答案 1 :(得分:4)

检查Apple的DrillDownSave示例应用程序:

  

“演示如何恢复用户   下钻列表中的当前位置   样式用户界面并恢复   应用程序重新启动时的位置。“

http://developer.apple.com/iphone/library/samplecode/DrillDownSave

答案 2 :(得分:2)

您需要将标识符与每个视图控制器相关联,并在当前视图更改时将该值保存为用户默认值。下次启动时,读取该值,您将知道最初需要加载哪个视图控制器。

答案 3 :(得分:0)

我已发布a little library来帮助完成这些事情。我已经在我在App Store上发布的应用程序中使用它了,它比手动为每个视图实现NSCoder要顺畅得多:P