iOS - setEditing [super setEditing ...]和/或[tableView setEditing ...]

时间:2012-02-05 20:24:38

标签: objective-c ios cocoa-touch uitableview

如果我想将tableView置于编辑模式。这样做的正确要求是什么?我似乎只能通过调用[super setEditing:YES animated:YES]将tableView置于编辑模式中,是否还需要调用[tableView setEditing:YES animated:YES]

2 个答案:

答案 0 :(得分:1)

我假设你在UITableViewController的子类中调用它?在这种情况下,对super的调用就足够了,因为UITableViewController在视图控制器本身开始编辑时会自动将其表视图置于编辑模式。

如果您的常规UIViewController恰好也包含UITableView,那么您必须自己这样做。

答案 1 :(得分:0)

方法调用由两部分组成:

[messageReciever message];

在你的第一个例子中,你正在使用super,这基本上意味着将消息setEditing:animated:发送到当前对象,但是从超类开始方法查找。

在第二个示例中,您要将消息setEditing:animated:发送到tableView对象。

UITableViewController实施setEditing:animated:并切换其tableView的编辑模式。实际上没有必要使用super,因为使用self具有相同的效果。如果您要覆盖setEditing:animated:以添加其他行为,则使用super会导致您的其他代码被绕过。