我有一个自定义的UITableViewCell,它始终有一个删除按钮。
按下删除按钮时,当前设计是使用是/否闪烁确认删除的警报。
到目前为止,所有这些都有效。
问题是,实际按“是”不会更新UITableView。它将从模型中删除数据,但该行仍然存在。
[table beginUpdates];
//modify model code goes here
[table deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationLeft];
[table endUpdates];
[table reloadData];
因此上面的代码将更新模型,但不会更新视图。我可以说模型正在更新,因为:
(A)再次尝试删除同一个单元格会导致崩溃
(B)移动到另一个屏幕并返回导致单元格被删除
我希望(B)的结果不必离开屏幕。
我不想使用commitEditingSyle,除非有用户知道他们正在编辑的方法。我当然不希望标准删除按钮或滑动删除功能。
答案 0 :(得分:1)
据我了解,您删除了您的模型 在情况B中,视图将再次出现,重新加载数据并构建UITableView。
当您移除模型时,是否将其从集合中删除?
我想不是。您的应用程序将使用相同的数据重建视图(重新加载数据时不会从内存中删除模型)。
您的流程应如下:
View loads/appears
Load Data
Load table
Model Delete Action
Delete Data
(Re)Load Data
Load table
我不确定,但我认为您忘了重新加载数据。
另一个提示:
您应该使用幻灯片删除。 这是人机界面指南(HIG)中定义的标准