iOS13 UIDocumentPickerViewController - открытый каталог не отображает кнопки выбора / открытия / отмены - PullRequest
0 голосов
/ 04 октября 2019

Я использую UIDocumentPickerViewController, чтобы просмотреть и позволить пользователю выбрать каталог, но на iOS 13, когда отображается этот UIDocumentPickerViewController, кнопки, которые должны отображаться как select / cancel и open / done, не отображаются, но когда вы нажимаете на этоРасположение это ведет себя так, как если бы кнопки были видны. Кроме того, эта проблема видна только в iOS 13. С тем же кодом кнопки отображаются в iOS 12. Любая помощь приветствуется

У меня есть цвет оттенка навигационной панели, установленный на ноль для экземпляра UIDocumentBrowserViewController вAppDelegate didFinishLaunchingWithOptions.

if #available(iOS 11.0, *) {
    UINavigationBar.appearance(whenContainedInInstancesOf: [UIDocumentBrowserViewController.self]).tintColor = nil
} 


//Here is how UIDocumentPickerViewController is created and presented
let documentPickerViewController = UIDocumentPickerViewController(documentTypes:["public.folder"], in: .open)
...
...
...

self!.documentPickerViewController.delegate = self!
self!.documentPickerViewController.allowsMultipleSelection = true
self!.documentPickerViewController.modalPresentationStyle = .fullScreen     

self!.navigationController?.present(self!.documentPickerViewController, animated: true, completion:nil)

Вот снимок экрана enter image description here

Редактировать: вот иерархия представлений - не уверен, почему DOCExportModeViewController на iOS 13. На iOS 12, это UIDocumentBrowserViewController для того же кода. Любые идеи, как это можно исправить?

enter image description here

1 Ответ

0 голосов
/ 05 октября 2019

Я заметил, что UIDocumentPickerController является подклассом UIViewController, где UIImagepickerController является подклассом UINavigationController.

, если вы попытаетесь установить tintColor из navBar для UIImagePickerController,вы можете получить к нему прямой доступ, например, imagePicker.navigationBar.tintColor = .red, зайдя в средство выбора документов, вы не можете получить прямой доступ к navigationBar. Вы можете получить к нему доступ imagePicker.navigationController?.navigationBar.tintColor = .red. Здесь navigationController is Optional. Вот почему мы не можем получить прямой доступ к navbar и внести изменения.

Apple создала приложение со средством выбора документов. Ссылка на исходный код здесь: Частицы

...