0

NavigationController 堆栈上有两个视图:

  1. 编辑项目详细信息视图(= 基本上是一个表格)
  2. 在表格视图中显示所有项目

我想知道我的任务是否有最佳实践:

当用户在 UINavigationController-bar 中点击“BACK”时(在视图1中),应用程序应该更新服务器上的项目。

这并不难,但是 BACK 操作会导致视图2,并且2不是最新的,因为更新发生在后台并且在表视图数据的 GET 请求完成之前没有完成。

因此,为了让视图2始终显示准确的数据,我有几个选择。有点烦人..(例如让视图2的 ViewController 代表1与服务器对话并在完成时更新自身,或者有一个触发重新加载的“更新发生”通知,...)

但是..这种情况下的最佳实践是什么?

4

1 回答 1

0

我想我会为这些项目做一个中心位置。让我们称它为 ItemsStore。ItemsStore 是一个单例,负责拥有一组最新项目并提供对这些项目的访问权限。如果新数据到达或保存旧数据,它也会触发通知。

在这种情况下:

  • 视图 2 将数据添加到存储中。商店通知有更改。
  • 查看通知的 1 个更新。
  • 视图 2 还要求 ItemsStore 将数据保存到服务器。

我不会将加载和保存的责任交给控制器,它会变得丑陋和复杂。

于 2013-06-24T13:59:10.180 回答