如何解决UIDocumentPickerViewController- didPickDocumentsAt 委托方法未在 iOS 11 中调用,在 iOS 14 中工作正常
我正在使用 UIDocumentPickerViewController 向我的应用程序添加文档。但在 iOS 11 中,didPickDocumentsAt 没有被调用,因此无法进行选择。 而它在 iOS14 中运行良好。 我已经阅读了 stackoverflow 中的几乎所有线程,但没有找到解决方案。 当文档选择器在其中启动时,它是 iOS 11 中的错误吗? Acc. to this link
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")
}}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。