如何在不使用commitEditingStyle的情况下删除自定义的UITableViewCell?
问题描述:
我有一个定制的UITableViewCell,它总是有一个删除按钮。如何在不使用commitEditingStyle的情况下删除自定义的UITableViewCell?
当按下删除按钮时,当前的设计是以确认/否的方式闪烁确认删除的警报。
到目前为止,所有这些都在起作用。
问题是,实际按'是'不会更新UITableView。它会从模型中删除数据,但该行仍然存在。
[table beginUpdates];
//modify model code goes here
[table deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationLeft];
[table endUpdates];
[table reloadData];
所以上面的代码将更新模型,但不是视图。我可以告诉大家,该模型被更新,这是因为:
(A)试图删除同一小区再次导致崩溃
(B)移动到另一个画面,回来在小区结果被删除
我想(B)的结果,而不必离开屏幕。
我不想使用commitEditingSyle,除非在用户不知道他们正在编辑的情况下有办法做到这一点。我当然不希望标准删除按钮或滑动删除功能。
答
据我所知,你删除了你的模型。
在情况B中,视图将再次出现,重新载入您的数据并构建UITableView。
当您删除模型时,是否将其从集合中删除?我想不是。您的应用程序将使用相同的数据重建视图(重新加载数据时,您的模型不会从内存中移除)。
你的流程应该如下:
View loads/appears
Load Data
Load table
Model Delete Action
Delete Data
(Re)Load Data
Load table
我不知道,但我想你忘记重新加载数据。
另一个秘诀:
你应该使用幻灯片中删除。 它是人机界面指南(HIG)中定义的标准
我想弄清楚在几个月前我是如何解决这个问题的。如果我记得,它非常简单 - 我正在重新装上错误的桌子! – kraftydevil
我同意你在幻灯片上的标准,但是,顾客并不想要这个:( – kraftydevil
)如果你重新加载错误的表格,我的假设是正确的。 –