Решение

We use cookies. Read the Privacy and Cookie Policy

Решение

Реализуйте в делегате табличного вида селектор tableView: editingStyleForRowAtIndexPath:, а в источнике данных табличного вида — селектор tableView: commitEditingStyle: forRowAtIndexPath::

— (UITableViewCellEditingStyle)tableView:(UITableView *)tableView

editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath{

return UITableViewCellEditingStyleDelete;

}

— (void) setEditing:(BOOL)editing

animated:(BOOL)animated{

[super setEditing: editing

animated: animated];

[self.myTableView setEditing: editing

animated: animated];

}

— (void) tableView:(UITableView *)tableView

commitEditingStyle:(UITableViewCellEditingStyle)editingStyle

forRowAtIndexPath:(NSIndexPath *)indexPath{

if (editingStyle == UITableViewCellEditingStyleDelete){

/* Сначала удаляем этот объект из источника данных */

[self.allRows removeObjectAtIndex: indexPath.row];

/* Потом удаляем ассоциированную с ним ячейку из табличного вида */

[tableView deleteRowsAtIndexPaths:@[indexPath]

withRowAnimation: UITableViewRowAnimationLeft];

}

}

Метод tableView: editingStyleForRowAtIndexPath: позволяет выполнять операции удаления. Он вызывается табличным видом, а его возвращаемое значение определяет, какие операции пользователь может делать в табличном виде (вставлять информацию, удалять информацию и т. д.). Метод tableView: commitEditingStyle: forRowAtIndexPath: выполняет затребованную пользователем операцию удаления. Второй из указанных методов определяется в делегате, но его функционал несколько перегружен: этот метод применяется не только для удаления данных, но и для удаления строк из таблицы.

Данный текст является ознакомительным фрагментом.