Я пытаюсь включить редактирование моего UITableView
, предоставив кнопку «Редактировать» на навигационной панели.
Цель состоит в том, чтобы позволить пользователю вставлять новые элементы и удалять существующие. При нажатии кнопки «Редактировать» iOS отображает украшение «Удалить» (удаление работает нормально), но не показывает «Вставить»
Я добавил navigationItem.rightBarButtonItem = editButtonItem
к своему UIViewControllers viewDidLoad
и добавил следующие методы к своему UITableViewDataSource
делегат:
func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool {
return true
}
func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) {
if editingStyle == .delete {
// Delete the row from the data source
AppDelegate.persistenceContext.delete(self.fetchedResultsController.object(at: indexPath))
AppDelegate.saveContext()
} else if editingStyle == .insert {
let current = self.fetchedResultsController.object(at: indexPath)
// do rest of insertion logic
}
}
Что я что-то упустил?
Да и из интереса, если это возможно, будет ли новая ячейка вставлена выше или ниже той, над которой действиебыл инициирован?
Для записи я могу добавить пользовательские действия смахивания к ячейкам, но отзывы пользователей - они предпочитают кнопку редактирования.
Любой источник света будет оценен по достоинству, все, что Googling получил от меня, - это использование кнопки для вставки новой строки или добавление пользовательских действий смахивания.