У меня есть запрос относительно метода делегата, который не вызывается для DocumentPickerViewController, вот фон, мне просто нужно импортировать ресурс, доступный из моего приложения «Файлы», и по этой причине я использую UIDocumentPickerViewController.
У меня есть отдельный ViewController, к которому я добавляю представление documentPickerViewController как подпредставление и добавляю его делегат. Код моего ViewController выглядит следующим образом.
var documentPickerController: UIDocumentPickerViewController!
let supportedUTI = [kUTTypeImage,kUTTypeSpreadsheet,kUTTypePresentation,kUTTypeDatabase,kUTTypeFolder,kUTTypeZipArchive,kUTTypeVideo, kUTTypeAudiovisualContent]
documentPickerController = UIDocumentPickerViewController.init(documentTypes: supportedUTI as [String], in: .import)
documentPickerController.delegate = self
documentPickerController.allowsMultipleSelection = false
view.addSubview(documentPickerController.view)
Теперь, когда я вижу, что pickercontroller открыт, и когда я нажимаю на Отмена, вызывается documentPickerWasCancelled
, но когда я выбираю файл, documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentsAt urls: [URL]
не вызывается.
Я попытался углубиться в свое удивление, вместо того, чтобы показать свой ViewController, к которому я добавляю представление средства выбора в качестве подпредставления, если я непосредственно показываю подобие pickerViewController
UIDocumentPickerViewController *dc = [[UIDocumentPickerViewController alloc] initWithDocumentTypes:[self UTITypes] inMode:UIDocumentPickerModeImport];
dc.delegate = self;
[MainVC presentViewController:dc animated:YES completion:nil];
оба метода делегата вызываются просто отлично. Я не понимаю почему. Может кто-нибудь, пожалуйста, помогите мне здесь! Заранее спасибо !!