0

我正在使用 UIDocumentPickerViewController 将文档添加到我的应用程序。但在 iOS 11 中,没有调用didPickDocumentsAt,因此无法进行选择。而它在 iOS14 中运行良好。我已经阅读了stackoverflow中的几乎所有线程,但没有找到解决方案。它是 iOS 11 中的一个错误,因为它是在其中启动 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")
}}
4

0 回答 0