我设置了导航栏,其中添加了一个添加按钮,可以将数据添加到我的表视图中。我还添加了这一行self.navigationItem.leftBarButtonItem = self.editButtonItem;
来创建编辑按钮。通过该方法,我注意到- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
方法。所以我在下面进行了修改,但我的应用程序冻结了。从表中删除数据的正确方法是什么?
// Override to support editing the table view.
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
if (editingStyle == UITableViewCellEditingStyleDelete) {
// Delete the row from the data source.
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
**[myArray removeObjectAtIndex:[indexPath row]];
[self.tableView reloadData];**
}
else if (editingStyle == UITableViewCellEditingStyleInsert) {
// Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view.
}
}
答案 0 :(得分:4)
首先尝试从数组中删除数据,然后通知表以删除相应的行。在这种情况下,不需要-reloadData调用:
if (editingStyle == UITableViewCellEditingStyleDelete) {
// Delete the row from the data source.
[myArray removeObjectAtIndex:[indexPath row]];
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
}