Я думаю, можно с уверенностью сказать, что мы все смотрим на этот источник от Apple ...
- (void)tableView:(UITableView *)tv commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
// If row is deleted, remove it from the list.
if (editingStyle == UITableViewCellEditingStyleDelete) {
SimpleEditableListAppDelegate *controller = (SimpleEditableListAppDelegate *)[[UIApplication sharedApplication] delegate];
[controller removeObjectFromListAtIndex:indexPath.row];
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
}
}
SimpleEditableListAppDelegate - это просто имя их примера класса. В ВАШЕМ коде вы просто хотите использовать имя делегата для вашего табличного представления (т.е. MyAppDelegate) или просто использовать "[self removeObjectFromListAtIndex];" вместо того, чтобы создавать контроллер работал нормально для меня.
removeObjectFromListAtIndex - это опять-таки просто произвольное имя для функции, которую вы бы создали, чтобы удалить содержимое массива, поддерживающего ваши данные табличного представления. Я не использовал функцию, вместо этого я просто использовал несколько строк кода.
Вот как это работает для меня ...
if (editingStyle == UITableViewCellEditingStyleDelete) {
// Update Model
NSMutableArray *work_array = [NSMutableArray arrayWithArray:self.city_table];
[work_array removeObjectAtIndex:indexPath.row];
self.city_table = [NSArray arrayWithArray:work_array];
[[NSUserDefaults standardUserDefaults] setObject:self.city_table forKey:KEY_CITY_TABLE];
// Update View
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
}
Надеюсь, это поможет ...
Z @ K!