我想学习重新加载应用程序状态的最佳实践,这样当我的应用程序启动时,它应该在再次打开时自动加载“正确”的视图/子视图。
在我的特定情况下,我的应用程序有一堆视图控制器,每个都负责UITableView。我希望我的应用程序在再次打开时“跳转”到我的表视图层次结构中的正确节点。
答案 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