Перемещение / удаление строк Diffable TableView

Я пытаюсь обновить tableView до UITableViewDiffableDataSource, но у меня возникают проблемы с удалением / перемещением строк. С некоторой помощью из предыдущего вопроса я создал подклассы dataSource и добавил туда переопределения tableview. Строки будут редактироваться, но когда я уйду и вернусь к представлению, они вернутся к тому состоянию, в котором были, поскольку мои модели данных в моем VC не обновляются с изменениями. Может кто-нибудь помочь с этим?

      extension NSDiffableDataSourceSnapshot {
mutating func deleteItemsAndSections(_ items : [ItemIdentifierType]) {
        self.deleteItems(items)
        let emptySection = self.sectionIdentifiers.filter {
            self.numberOfItems(inSection: $0) == 0
        }
        self.deleteSections(emptySection)
    }
}


fileprivate class ListDrillDownDataSource: UITableViewDiffableDataSource<String,   ListItem> {

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

override func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) {
    guard editingStyle == .delete else { return }
        // Delete the row from the data source
        if let item = self.itemIdentifier(for: indexPath) {
            var snapshot = self.snapshot()
            snapshot.deleteItemsAndSections([item])
            self.apply(snapshot, animatingDifferences: true)
    }
}

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

}

0 ответов

Другие вопросы по тегам