如何仅在按下完成按钮时保存重新排序的行?

时间:2009-09-14 11:48:13

标签: iphone uitableview sorting

如果我对表格视图中的行重新排序,是否可以仅在用户按下“完成”按钮时保存结果? (重新排序工作得很好,但我只想提交位置的最终结果,如果用户按下完成按钮,而不是每次移动一行。)

在commitEditingStyle中有类似editStyle == UITableViewCellEditingCellMove的内容吗?

或者这只能在moveRowAtIndexPath操作中使用吗?

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

您需要创建一些在用户完成编辑时提交的内部数据结构的“编辑”版本。 UITableView没有跟踪细胞的位置;它依赖于你这样做。它只是告诉你用户何时要求移动东西。如果你真的不想在那时移动它们,那么你需要跟踪它们与TableView中当前顺序的实际位置。

请记住,UITableViews故意愚蠢。他们没有跟踪数据。他们只是画东西。您可以跟踪数据(作为数据源),并告诉他们在询问时要绘制什么。

我通常建议开发人员将他们的实际数据分成单独的模型类,并让UITableView基于该模型类维护单独的NSMutableArray。在这种情况下,在编辑期间,您将更新UITableView的数组,完成编辑后,它会将该数组发送到模型以更新“真实”数据。