2011-09-27 55 views
1

我有一个定制的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,除非在用户不知道他们正在编辑的情况下有办法做到这一点。我当然不希望标准删除按钮或滑动删除功能。

回答

1

据我所知,你删除了你的模型。
在情况B中,视图将再次出现,重新载入您的数据并构建UITableView。

当您删除模型时,是否将其从集合中删除?我想不是。您的应用程序将使用相同的数据重建视图(重新加载数据时,您的模型不会从内存中移除)。

你的流程应该如下:

View loads/appears 
    Load Data 
    Load table 

Model Delete Action 
    Delete Data 
    (Re)Load Data 
    Load table 

我不知道,但我想你忘记重新加载数据。

另一个秘诀:
你应该使用幻灯片中删除。 它是人机界面指南(HIG)中定义的标准

+0

我想弄清楚在几个月前我是如何解决这个问题的。如果我记得,它非常简单 - 我正在重新装上错误的桌子! – kraftydevil

+0

我同意你在幻灯片上的标准,但是,顾客并不想要这个:( – kraftydevil

+0

)如果你重新加载错误的表格,我的假设是正确的。 –

相关问题