如何以编程方式删除表行?

时间:2010-04-21 15:40:05

标签: iphone uitableview

我有一个表,我用tableViewController操作(没有nib,控制器在后台创建表) 我正在尝试根据行号从表中删除一行;我可以从我用来在cellForRowAtIndexPath中创建单元格的数组中删除它,但如果我尝试执行以下操作,我会收到一个奇怪的错误,这与tableView中的代码相同:commitEditingStyle:forRowAtIndexPath: 哪里工作正常

  

NSIndexPath * indexPath = [NSIndexPath indexPathForRow:i + 1 inSection:1]

     

[self.tableView deleteRowsAtIndexPaths:[NSArray   arrayWithObject:indexPath]            withRowAnimation:UITableViewRowAnimationFade];

它出错

  

- [_ WebSafeForwarder forwardInvocation:]

然后跳出该方法但不会使应用程序崩溃

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:0)

您需要在此块中执行此操作。

[self.tableView beginUpdates];

///

[self.tableView endUpdates];

注意到块到达终点时的一件事

- (void) numberOfRowsInSection:(NSInteger)section

将再次被召唤。所以你需要更新表格视图中的行数。

希望这有帮助。

谢谢,

Madhup

答案 1 :(得分:-1)

你的第一行错过了一个分号。

如有疑问,请清理语法......

作为一个观察点,我与之合作过的大多数程序员都非常讨厌UITableViewController。它实际上没有为用户添加任何功能,只会混淆开发人员可能真正想控制的内容......例如通过XIB表的位置。

这只是一个便利课程,根据我的经验,会导致比预防更多的问题。