У меня есть таблица, которая использует выборки coredata для заполнения своего «я», контроллер выборки сохраняет действие строки удаления.Добавление действия «Редактировать строку» в TableView, в котором используется Fetch Controller?
Однако я хочу добавить функцию редактирования в строку, но я, похоже, не могу добавить это рядом с функцией удаления, которую я сейчас имею, и мне нужно использовать editActionsForRowAt, чтобы она появилась.
Когда я использую editActionsForRowAt, он переопределяет существующие действия над строками контроллера Fetch и заставляет удаление больше не работать.
Любая идея, как я могу добавить только редактирование рядом с существующим удалением без написания или возиться с контроллером результатов выборки?
Вот код для выборки контроллера, который является источником для таблицы и ее удаление дела и удалить FUNC, я хочу, чтобы в идеале добавить кнопку редактирования для этого, без необходимости переписывать все с editActionsForRowAt
func controller(_ controller: NSFetchedResultsController<NSFetchRequestResult>, didChange anObject: Any, at indexPath: IndexPath?, for type: NSFetchedResultsChangeType, newIndexPath: IndexPath?) {
switch (type) {
case .insert:
if let indexPath = newIndexPath {
workoutDesignerTable.insertRows(at: [indexPath], with: .fade)
}
break;
case .delete:
if let indexPath = indexPath {
workoutDesignerTable.deleteRows(at: [indexPath], with: .fade)
}
break;
case .update:
if let indexPath = indexPath, let cell = workoutDesignerTable.cellForRow(at: indexPath) as? RoutineTableViewCell {
configure(cell, at: indexPath)
}
break;
default:
print("...")
}
}
// MARK: - DELETING TABLE ROW
func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {
if editingStyle == .delete {
let UserExercise = fetchedResultsController.managedObjectContext
UserExercise.delete(self.fetchedResultsController.object(at: indexPath))
do {
try UserExercise.save()
} catch {
let nserror = error as NSError
fatalError("Unresolved error \(nserror), \(nserror.userInfo)")
}
}
}
Для получения дополнительной информации, пожалуйста, см. Снимок экрана текущих действий Редактирование таблицы строк.
Да, но, как я заявил в вопросе, используя это, перезаписывает функцию удаления контроллеров выборки, я предполагаю, что это происходит, чтобы скопировать код и вставить его в параметр editActionsForRowAt? – jwarris91
@ jwarris91 Прочтите ответ еще раз, вы все еще не понимаете. –