我想学习重新加载应用程序状态的最佳实践,这样当我的应用程序启动时,它应该在再次打开时自动加载“正确”的视图/子视图。
在我的特殊情况下,我的应用程序有一堆视图控制器,每个控制器都负责一个 UITableView。我希望我的应用程序在再次打开时“跳转”到表视图层次结构中的正确节点。
我想学习重新加载应用程序状态的最佳实践,这样当我的应用程序启动时,它应该在再次打开时自动加载“正确”的视图/子视图。
在我的特殊情况下,我的应用程序有一堆视图控制器,每个控制器都负责一个 UITableView。我希望我的应用程序在再次打开时“跳转”到表视图层次结构中的正确节点。
基于 Marc 所说,假设您有一个基本视图控制器,然后是一个或多个级别的“向下钻取”,使用[navigationController pushViewController: viewController animated: NO]
. 然后,当用户点击后退按钮时,他们将看到预加载的前一个视图控制器。一个很好的例子是“联系人”应用程序,它预加载组视图控制器,然后在其上推送当前组的视图控制器(通常是“所有联系人”)。
检查 Apple 的 DrillDownSave 示例应用程序:
“演示如何在向下钻取列表样式的用户界面中恢复用户的当前位置,并在重新启动应用程序时恢复该位置。”
http://developer.apple.com/iphone/library/samplecode/DrillDownSave
您需要将标识符与每个视图控制器相关联,并在当前视图更改时将该值保存到用户默认值。下次启动时,读取该值,您将知道最初需要加载哪个视图控制器。
我已经发布了一个小图书馆来帮助做这些事情。我已经在我在 App Store 上发布的应用程序中使用它,它比手动为每个视图实现 NSCoder 更流畅:P