Присутствует контроллер модального представления от UIAction
Мое приложение работает со списком контактов в TableViewController. Оттуда вы можете нажать на строку, чтобы открыть сведения о контакте. Позже, на этой детали View Controller, вы можете нажать кнопку панели "Edit", чтобы модально представить третий View Controller для редактирования данных контакта. Я использую синхронизацию CoreData и iCloud, все работает нормально.
Теперь я реализую контекстные UIActions для строк табличного представления, например, для того, чтобы представить DIRECTLY edit View Controller для контакта в indexPath. я использую
contextMenuConfigurationForRowAt
способ сделать это:
override func tableView(_ tableView: UITableView, contextMenuConfigurationForRowAt indexPath: IndexPath, point: CGPoint) -> UIContextMenuConfiguration? {
let object = fetchedResultsController?.object(at: indexPath)
return UIContextMenuConfiguration(identifier: nil, previewProvider: nil) { suggestedActions in
let editAction = UIAction(title: "Edit", image: UIImage(systemName: "square.and.pencil")) { action in
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let VC = storyboard.instantiateViewController(withIdentifier: "EditViewController") as! EditViewController
VC.person = object
self.present(VC, animated: true, completion: nil)
}
EditViewController представлен модально, но ни его кнопки навигации (сохранить, отменить), ни его строка заголовка не представлены. Я могу вручную отключить контроллер, да, но без кнопок сохранения и отмены бесполезно.
Я намерен представить EditViewController ТОЧНО как оригинальный способ, с каждой опцией (возможно, даже БОЛЕЕ detailViewController, как обычно, хотя в этом нет необходимости), просто чтобы привести пользователя к тому же опыту, но с меньшим количеством шагов.
Я полагаю, что должен быть способ обойти эту проблему, что-то связанное с его корневым или навигационным контроллером (поскольку EditViewController фактически встроен в соответствующий ему контроллер навигации), но я не могу найти способ...
Благодаря!