Перемещение / удаление строк 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
}
}