问题描述
我正在使用 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 (将#修改为@)