Удаление прокручиваемых ячеек TableView с использованием базовых данных - PullRequest
0 голосов
/ 03 июня 2018

Итак, я могу добавлять задачи и сохранять их в своем приложении.Теперь я хотел бы удалить задания и сохранить то, что я удалил.Я использую сотовый какао-боб, чтобы позволить пользователю смахивать влево и удалять элементы.Тем не менее, мой код ниже, кажется, не работает так, как я хочу.Во-первых, жест смахивания не работает, а во-вторых, если у меня были «task1», «task2», «task3», я не могу удалить задачу 3, но я могу удалить задачу 1, тогда я могу удалить задачу 3. Кроме того, иногдамой удаленный элемент сохраняется, а иногда нет.Мой код ниже, любая помощь очень ценится.

class DailyTasksTableViewController: UITableViewController {

//Variables
var tasksArray = [Task]()
let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
.....

extension DailyTasksTableViewController: SwipeTableViewCellDelegate {
    func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath, for orientation: SwipeActionsOrientation) -> [SwipeAction]? {
        guard orientation == .right else { return nil }

    let deleteAction = SwipeAction(style: .destructive, title: "Delete") { action, indexPath in
        self.context.delete(self.tasksArray[indexPath.row])
        self.tasksArray.remove(at: indexPath.row)

        do {
            try self.context.save() 
        }catch{
            print("error saving delete \(error)")
        }
    }

    // customize the action appearance
    deleteAction.image = UIImage(named: "delete-icon")

    return [deleteAction]
}

func tableView(_ tableView: UITableView, editActionsOptionsForRowAt indexPath: IndexPath, for orientation: SwipeActionsOrientation) -> SwipeOptions {
    var options = SwipeOptions()
    options.expansionStyle = .destructive
    return options
}

}

1 Ответ

0 голосов
/ 03 июня 2018

Ответ на вопрос «Во-первых, жест смахивания не работает»

func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool {
    return true
}
...