Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何启用从UIDocumentPickerViewController选择文件?_Ios_Swift_Url_Uidocumentpickerviewcontroller - Fatal编程技术网

Ios 如何启用从UIDocumentPickerViewController选择文件?

Ios 如何启用从UIDocumentPickerViewController选择文件?,ios,swift,url,uidocumentpickerviewcontroller,Ios,Swift,Url,Uidocumentpickerviewcontroller,我正在将文件附加到电子邮件,我想通过UIDocumentPickerViewController来完成。基本上,用户点击图标,他可以选择一个文件。一切正常,用户可以选择一个文件,我可以得到它的url,然后进行文件传输。最近它停止了工作,令人惊讶的是,我没有对代码做任何更改(是的,听起来很傻)。我发现我的DIDT代表没有被调用。总之,单击时会调用browseFiles函数,并显示documentBrowser,但选择文件不起作用(不调用didPickDocumentAt委托函数和uploadDat

我正在将文件附加到电子邮件,我想通过UIDocumentPickerViewController来完成。基本上,用户点击图标,他可以选择一个文件。一切正常,用户可以选择一个文件,我可以得到它的url,然后进行文件传输。最近它停止了工作,令人惊讶的是,我没有对代码做任何更改(是的,听起来很傻)。我发现我的DIDT代表没有被调用。总之,单击时会调用browseFiles函数,并显示documentBrowser,但选择文件不起作用(不调用didPickDocumentAt委托函数和uploadDataFromUrl)


不推荐使用。您应该使用
可选的func documentPicker(\ucontroller:UIDocumentPickerViewController,didPickDocumentsAt URL:[URL])
。尝试将
documentBrowserController
声明为视图控制器的属性。(将其从browseFiles方法中移到EditViewTableViewController声明中)不推荐使用。您应该使用
可选的func documentPicker(\ucontroller:UIDocumentPickerViewController,didPickDocumentsAt URL:[URL])
。尝试将
documentBrowserController
声明为视图控制器的属性。(将其从browseFiles方法移到EditViewTableViewController声明中)
extension EditViewTableViewController: UIDocumentMenuDelegate, UIDocumentPickerDelegate {
func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentAt url: URL) {
    self.uploadDataFromUrl(url: url)
}

public func documentMenu(_ documentMenu: UIDocumentMenuViewController, didPickDocumentPicker documentPicker: UIDocumentPickerViewController) {
    documentPicker.delegate = self
    present(documentPicker, animated: true, completion: nil)
}

func documentPickerWasCancelled(_ controller: UIDocumentPickerViewController) {
    dismiss(animated: true, completion: nil)
}

func browseFiles() {
    let documentBrowserController = UIDocumentPickerViewController(documentTypes: [kUTTypeImage, kUTTypeCompositeContent] as [String], in: UIDocumentPickerMode.import)
    if #available(iOS 11.0, *) {
        documentBrowserController.allowsMultipleSelection = true
    }
    documentBrowserController.delegate = self
    self.present(documentBrowserController, animated: false, completion: nil)
}

func uploadDataFromUrl(url: URL) {
    if FileManager.default.fileExists(atPath: url.path) {
        do {
            let data = try Data(contentsOf: url)
            self.didUploadedTheFile(path: url.path)
        } catch {
            print(error.localizedDescription)
        }
    }
}