我正在尝试使用commit editstyle func删除tableView中的一行。当用户删除一行时,我希望显示UIAlertController。 我在没有警报的情况下尝试了该方法,该方法有效。 这是我的commit editStyle函数:
func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {
if editingStyle == .delete {
let sheet = UIAlertController(title: "Diesen Verein löschen?", message: "Wollen Sie diesen Verein für immer löschen?", preferredStyle:.alert)
present(sheet, animated: true, completion: nil)
let action1 = UIAlertAction(title: "Löschen", style: .default , handler: { (action) in
self.deleteClub(at: indexPath)
})
let action2 = UIAlertAction(title: "Abbrechen", style: .default, handler: { (action) in
self.dismiss(animated: true, completion: nil)
})
sheet.addAction(action1)
sheet.addAction(action2)
present(sheet, animated: true, completion: nil)
}
}
这是我的删除功能,但我不认为这是一个错误,因为它可以在没有警报的情况下工作。
func deleteClub(at indexPath: IndexPath){
let club = clubs[indexPath.row]
guard let managedContext = club.managedObjectContext else {
return
}
managedContext.delete(club)
do {
try managedContext.save()
clubs.remove(at: indexPath.row)
tableViewClub.deleteRows(at: [indexPath], with: .automatic)
} catch {
print("Could not delete")
tableViewClub.reloadRows(at: [indexPath], with: .automatic)
}
}