Я использую UIDocumentPickerViewController для добавления документов в свое приложение. Но в iOS 11 didPickDocumentsAt не вызывается, поэтому выбор невозможен. Тогда как в iOS14. Я прочитал почти все потоки в stackoverflow по этому поводу, но решения не было найдено. Это ошибка в iOS 11, так как в ней был запущен сборщик документов? Acc. по этой ссылке
Никаких журналов не создается. Любая помощь приветствуется!
Метод запуска documentpicker:
@IBAction func addDocBtn(_ sender: UIButton) {
//MARK: doc-picker
let docPicker = UIDocumentPickerViewController(documentTypes: ["public.text", "com.apple.iwork.pages.pages", "public.data"], in: .import)
docPicker.delegate = self
docPicker.modalPresentationStyle = .currentContext
self.navigationController?.present(docPicker, animated: true, completion: nil)}
Мой представитель:
extension AddReferralDetailsViewController : UIDocumentPickerDelegate{
func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentsAt urls: [URL]) {
print(urls.first as Any)
guard let selectedFileUrl = urls.first else {
return
}
let cico = selectedFileUrl as URL
print(cico)
selectedFileURL = cico
print(cico.lastPathComponent)
//hide doc btn
//update name and add cross sign
selectDocName = cico.lastPathComponent
DispatchQueue.main.async {
self.docDisplayStack.isHidden = false
self.addDocumentBtn.isHidden = true
self.selectedDocName.text = self.selectDocName
}
print(cico.pathExtension)
let dir = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
let sandBoxUrl = dir.appendingPathComponent(selectedFileUrl.lastPathComponent)
if FileManager.default.fileExists(atPath: sandBoxUrl.path){
print("already exists")
self.view.makeToast("Already Selected")
}
else{
do{
try FileManager.default.copyItem(at: selectedFileUrl, to: sandBoxUrl)
print("copied")
}
catch{
print(error)
self.view.makeToast(error.localizedDescription)
}
}
}
//this is called in everyversion but others behave differently
func documentPickerWasCancelled(_ controller: UIDocumentPickerViewController) {
print("no items selected")
}}