0

我目前正在开发一个跟踪猫及其相关芝士汉堡的应用程序。我正在使用 Core Data 支持应用程序。猫和它的芝士汉堡之间存在一对多的关系(一只猫可以有零个或多个芝士汉堡)。

我有一个 UITableViewController 按名称(姓氏,名字)显示所有猫。当您单击表格中的一行时,一个新的 UITableViewController 会被推送到导航控制器上,该控制器会显示有关猫的所有信息。对于它的价值,表格视图与第一秒分组,其中包含有关猫的信息(名字/姓氏,颜色等)。然后在第二部分中,描述了猫吃的所有奶酪汉堡。

右侧导航项是编辑按钮。当用户处于编辑模式时,我隐藏了导航栏的后退按钮,将其替换为取消按钮。

我的问题是:是否有关于如何处理在编辑屏幕中管理数据的标准/常见做法/等?我看到它发生在以下两种方式之一:

  1. 跟踪用户更改的所有内容,然后当他们点击done按钮时,将这些更改复制到Cat NSManagedObject.
  2. 使用与NSUndoManager关联的,NSManagedObjectContext并且当用户开始编辑时,创建一个新的撤消分组。当他们点击取消按钮时,只需结束分组,然后在NSUndoManager.

我觉得选项 2 似乎最实用,但我对它的感觉很复杂。对于 iPhone,NSManagedObjectContext默认情况下没有NSUndoManager与之关联的 - 我读过它适用于 OSX 应用程序。NSManagedObjectContext在网上阅读时,我也没有看到太多关于使用与iPhone 编程相关的讨论。这让我觉得人们可能正在使用另一种我没有想到的方法。

4

1 回答 1

1

一个更常见的 iPhone 应用程序工作流程是根本没有“取消”按钮。大多数应用程序只是将“编辑”按钮变成“完成”按钮。仅当可能丢失的信息难以重现时才考虑取消。

但是,如果您想要一个取消按钮,第一个选项似乎更精简。在完成时应用更改。在任何其他情况下,只需丢弃临时更改数据。后者不仅在取消时执行,而且在应用程序必须终止时执行。仅接受显式完成的更改。

于 2012-01-15T09:50:22.030 回答