У меня есть UITableView, который получает массив объектов Core Data из FetchedResultsController. Я хочу, чтобы иметь возможность удалять объект из представления таблицы с помощью стандартной кнопки удаления, а ячейка tableview исчезает, как обычно, когда элемент удален, однако в моем случае я не фактически удаление объекта, но обозначив его как удаленный. Например, у меня есть атрибут, который называется deleted, поэтому он все еще существует, но отображается удаленным;Как удалить элемент из фильтрованного UITableView, не удалив его вообще?
obj.deleted = [NSNumber numberWithBool:YES];
Есть ли способ сделать это, чтобы он по-прежнему работал в соответствии со стандартным удалением?
Я не могу сделать это без звонка [self.tableView reloadData]
, поэтому я теряю приятные анимации, которые поставляются со стандартным удалением.
Мой контрольный элемент данных, обработанный таблицей, имеет фильтр, поэтому данные в таблицеView фильтруются;
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"deleted == %@", [NSNumber numberWithBool:NO];
подозревается, что код, который мне нужен, пойдет сюда;
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
if (editingStyle == UITableViewCellEditingStyleDelete) {
//
}
}
Что вы подразумеваете под «маркировкой его как удаленной в основных данных» и «поэтому он по-прежнему работает в соответствии со стандартным удалением» ? –
Извините, было трудно объяснить. У меня есть атрибут BOOL, который называется deleted, который я хотел бы установить в 'obj.deleted = [NSNumber numberWithBool: YES];' поэтому получатель результатов не извлекает его. Надеюсь, это имело смысл. – ADAM