直接调用UITableViews委托方法
问题描述:
我正在寻找一种直接调用编辑方法的方法。直接调用UITableViews委托方法
- (void)tableView:(UITableView *)theTableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
我有所有我的动画操作的细胞,来自我的模型排列 等在该方法中除去的逻辑。它在用户滑动,添加或重新排列时被调用,但我想手动/直接调用 作为后台线程更改我的模型。
我构建一个NSIndexPath像这样:
NSIndexPath *path = [NSIndexPath indexPathForRow:i inSection:1];
我只是无法弄清楚如何调用类似:
[self.tableview commitEditingStyle:UITableViewCellEditingStyleDelete forRowAtIndexPath:path];
我需要访问的这个方法以另一种方式显示UITableView?
谢谢:)
答
我不明白你为什么不能调用这个方法,如果你只想让你的代码执行。该文档给出了一个沉重的提示
- (void)setEditing:(BOOL)editing animated:(BOOL)animate
将无论如何调用该数据源方法的效果。将代码从该方法重构为另一种方法并从数据源方法和代码中的其他位置调用它会更有意义,如果这真的是你想要做的。
如果您确实想要反映您的模型中的更改,请致电[tableView reloadData]
- 这就是它的用途。
答
我不知道这是肯定的,但也许如果调用方法
- (void)setEditing:(BOOL)editing animated:(BOOL)animate
它可能是,该commitEditingStyle方法被调用。
+0
谢谢你们,我可以看到我的问题可以被看作是如果我正在使用标准方法,对不起:) – RickiG 2010-04-17 10:14:43
嗨Paull 我已经建立了一组自定义的单元格,使用自己的编辑图形。所以我已经知道用户希望删除这些单元格。如果我将编辑设置为YES,它将提供这样的框架控制,这不是我的目标。 我同意调用commitEditingStyle直接要直截了当,但这样做: \t \t \t \t \t [self.tableView:self.tableView commitEditingStyle:UITableViewCellEditingStyleDelete forRowAtIndexPath:路径]; 结果在“无法识别的选择器”的消息,即使autocompletion是Xcode很乐意提供给我作为一种方法在tableView? – RickiG 2010-04-17 10:12:44
方法名称是正确的 - 但它不是由tableView实现的;它是一种数据源必须实现的方法,以反映您对模型中的表进行的更改。 – 2010-04-17 11:03:47
我明白了。所以相反,我应该改变我的模型以反映事物的当前状态,然后通过正确的渠道进行更新。当我做tableview.dataSource = self时,我实现了这个方法。我可能将不得不实施beginUpdates和endUpdates,而不是在它认为没有进行任何更改时强制TableView执行动画。 谢谢,我保证停止战斗框架:) – RickiG 2010-04-20 15:57:07