我正在尝试滑动以删除手势。
有时在轻扫手势后,手机会以强制方式恢复正常状态。 进入编辑模式并点击 - 按钮也会出现。
它是随机发生的。
当用户点击编辑按钮时,始终会调用此方法:
- (IBAction)editButtonTapped:(UIBarButtonItem *)sender {
[self.tableView setEditing:!self.tableView.editing animated:YES];
}
canEditRowAtIndexPath
方法始终返回YES
。这是我的commitEditingStyle
方法:
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
NSManagedObjectContext *context = [self managedObjectContext];
if (editingStyle == UITableViewCellEditingStyleDelete) {
// Delete object from database
[context deleteObject:[self.alarmsMutableArray objectAtIndex:indexPath.row]];
NSError *error = nil;
if (![context save:&error]) {
NSLog(@"Can't Delete! %@ %@", error, [error localizedDescription]);
return;
}
// Remove object from table view
[self.alarmsMutableArray removeObjectAtIndex:indexPath.row];
[self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
}
}
答案 0 :(得分:-1)
您需要在模型中以及在更新块中的tableView中嵌套项目的删除 所以在最后两行代码出现之前......
[self.tableView beginUpdates];
然后在最后放..
[self.tableView endUpdates];
...... 请注意,在最后两行之间,你的模型与你的tableView不同步(你从数组中删除了一个对象,但还没有删除一个单元格......)你应该只处于这个位置之间[ beginUpdates]和[endUpdates]或您的应用可能会崩溃。