可能重复:
change Table to Edit mode and delete Rows inside a normal ViewController
我想从tableView中删除选定的行。我想为用户提供在他滑动或轻弹手指时删除行的功能。我知道编辑样式,它提供了一个带有-ve符号的圆形红色按钮。
我试过这段代码:
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
[tableView beginUpdates];
if (editingStyle == UITableViewCellEditingStyleDelete) {
// Do whatever data deletion you need to do...
// Delete the row from the data source
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObjects:indexPath, nil] withRowAnimation:UITableViewRowAnimationTop];
}
[tableView endUpdates];
[tableView reloadData];
}
我得到删除按钮,但是当我点击它时,SIGABRT错误就在那里。
答案 0 :(得分:17)
尝试以下几行:
[bookmarks removeObjectAtIndex:indexPath.row];
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObjects:indexPath, nil] withRowAnimation:UITableViewRowAnimationFade];
书签是我在表视图单元格上加载的数组名称,您应该使用数组名称代替此。
答案 1 :(得分:3)
删除表格行后,将相应的索引dataSource从dataSource删除到table。然后再次重新加载表。
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
[dataArray removeObjectAtIndex:indexPath.row];
[tableView reloadData];
答案 2 :(得分:0)
试试这个
[tableArray removeObjectAtIndex:indexPath.row];
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
答案 3 :(得分:0)
必须尝试这个....
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObjects:indexPath, nil] withRowAnimation:YES];