У меня есть приложение с несколькими контроллерами представления с табличным представлением в каждом из них. Каждая таблица контроллера представления имеет свое собственное заданное c назначение, но я использую одни и те же действия смахивания в каждой таблице. До сих пор я только что копировал и вставлял один и тот же код для trailingSwipeActionsConfigurationForRowAt
и leadingSwipeActionsConfigurationForRowAt
в каждой таблице. Это неправильно, и я знаю, что должен быть способ, которым я мог бы написать код один раз и использовать его во всем приложении, но я не уверен, как это сделать.
Я пытался использовать расширения UITableView
, но не могу использовать функции trailingSwipeActionsConfigurationForRowAt
или leadingSwipeActionsConfigurationForRowAt
в файле расширений. Чего мне не хватает?
Вот код для trailingSwipeActionsConfigurationForRowAt
, который нужно просто удалить:
func tableView(_ tableView: UITableView, trailingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration? {
let action = UIContextualAction(style: .destructive, title: "") { (action, view, completionHandler) in
if let item = self.dataSource.itemIdentifier(for: indexPath) {
CoreDataManager.sharedManager.deleteItem(item)
}
completionHandler(true)
}
action.image = UIImage(named: "deleteSymbol")
let configuration = UISwipeActionsConfiguration(actions: [action])
return configuration
}