Извините, если это выглядит как дубликат, я видел подобные вопросы здесь, я просто не мог заставить их ответы работать:
У меня есть tableView со списком созданных пользователем объектов realmObject. Моя текущая функция удаления выглядит следующим образом (и прекрасно работает):
override func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) {
if editingStyle == .delete {
let realm = try! Realm()
try! realm.write {
realm.delete(allDiaries[indexPath.row])
}
tableView.deleteRows(at: [indexPath], with: .fade)
}
}
Моя проблема в том, что я не хочу, чтобы появилось сообщение «Вы уверены, что не хотите удалять?» - всплывающее окно с двумя вариантами; "Да, удали!" & "Нет, спасибо."
Я могу легко создать UIAlertController и заставить его отображать его, когда я перемещаю, чтобы удалить ячейку или нажимаю кнопку удаления - но глупо, что ячейка удаляется в ту же секунду, когда нажата кнопка удаления и только после этого (полностью бесполезный!) всплывает UIAlertController - и неважно, что вы нажимаете, он просто исчезает и ячейка удаляется.
Моя текущая попытка:
override func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) {
let alert = UIAlertController(title: "Are you sure you wish to delete diary?", message: "", preferredStyle: .alert)
let action = UIAlertAction(title: "No thanks!", style: .cancel)
let action1 = UIAlertAction(title: "Delete!", style: .destructive)// <-- handler: 'deletefunction'
alert.addAction(action)
alert.addAction(action1)
if editingStyle == .delete {
present(alert, animated: true)
let realm = try! Realm()
try! realm.write {
realm.delete(allDiaries[indexPath.row])
}
tableView.deleteRows(at: [indexPath], with: .fade)
}
}
}
Так что, очевидно, я не хочу перемещать «delete-tableViewCell-method» внутри «Action1» (кнопка «Delete» в pop-alert!) И от самой кнопки «delete». <- Это должно показать ТОЛЬКО всплывающее предупреждение! </p>
Я предполагаю, что у меня должен быть этот 'delete-tableViewCell-method' внутри обработчика - но я просто не могу переместить метод из этого tableView-метода для создания обработчика без жалоб xCode. Так как мне создать обработчик и правильно его вставить?
Спасибо! :)