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 (将#修改为@)