UIDocumentBrowserViewController обрабатывает обратную навигацию
Apple утверждает, что UIDocumentBrowserViewController должен быть корневым контроллером вашего приложения. https://developer.apple.com/documentation/uikit/view_controllers/adding_a_document_browser_to_your_app
Я сделал это таким образом, но у меня есть некоторые проблемы с UX, которые я не могу решить. Я не могу найти хорошее UX-решение для перехода обратно в мое приложение (снова переключив rootviewcontroller из окна приложения на то, что я хочу).
Однако я обнаружил, что есть некоторые свойства, в которых я могу манипулировать внешним видом элемента управления: "Используйте методы AdditionalLeadingNavigationBarButtonItems и AdditionalTrailingNavigationBarButtonItems для добавления кнопок на панель навигации.", Но они не добавляют элементы в "главное" меню (где я Можно выбрать другие FileProviders, Dropbox и т. д.) и где возможность возврата была бы наиболее очевидной.
Кто-нибудь реализовал, знает хорошее решение для добавления кнопки "назад", FAB, жеста смахивания назад или чего-то для UIDocumentBrowserViewcontroller, который представлен в виде rootviewcontroller для приложений?
Я ищу решение, когда пользователь завершил просмотр документов в UIDocumentBrowserViewcontroller (копировать, импортировать и т. Д.) И хочет вернуться к другому Viewcontroller.
1 ответ
Отличным решением для этой проблемы является добавление пользовательской кнопки с помощью свойства extraTrailingNavigationBarButtonItems или extraLeadingNavigationBarButtonItems . Пример ниже:
let documentBrowser = UIDocumentBrowserViewController(forOpening: [.jpeg, .png])
let cancelButton = UIBarButtonItem(title: "Cancel", style: .plain, target: self, action: #selector(didTapDocumentBrowserCancel))
documentBrowser.additionalTrailingNavigationBarButtonItems = [cancelButton]
Затем создайте функцию для закрытия браузера документов.
@objc private func didTapDocumentBrowserCancel() {
dismiss(animated: true)
}
Использованная литература: