1

我在导入 iCloud 文件时遇到问题 在选择要导入的位置(iCloud、谷歌驱动器、保管箱......等)后,我得到了空选项 我在 iCloud 驱动器上有数据并且权利是正确的

那么这段代码有什么问题,或者设置有什么可能导致这个问题?

这是代码

@IBAction func selectionButtonAction(_ sender: Any) {

        let types = [kUTTypePDF as String ,kUTTypePNG as String, kUTTypeImage as String,kUTTypeJPEG as String]
        UINavigationBar.appearance().isTranslucent = true
        let documentMenu = UIDocumentMenuViewController(documentTypes: types, in: .import)
        documentMenu.delegate = self
        self.viewController?.present(documentMenu, animated: true, completion: nil)
    }

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


    func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentAt url: URL) {
        if controller.documentPickerMode == .import {
// do staff
        }
    }

这是我在 iOS 10 上运行应用程序时得到的结果

当我按下选择文件时

当我按下选择文件时

然后在按下 iCloud 后

按下 iCloud 后

如果我在 iOS 9 上运行应用程序,这就是我得到的:

如果我在 iOS 9 上运行应用程序,这就是我得到的


我确定我在 iCloud Drive 应用程序中有类似这里的数据

驱动数据

和权利

在此处输入图像描述

4

1 回答 1

0

当我试图展示一个已经使用过的UIDocumentMenuViewController. 我像这样懒惰地实例化它:

lazy var documentMenuController: UIDocumentMenuViewController = {
    let controller = UIDocumentMenuViewController(documentTypes: ["com.adobe.pdf"], in: .import)
    controller.delegate = self
    return controller
}()

除第一次外,每次都会产生此错误。

所以我把代码改成这样:

var documentMenuController: UIDocumentMenuViewController {
    let controller = UIDocumentMenuViewController(documentTypes: ["com.adobe.pdf"], in: .import)
    controller.delegate = self
    return controller
}

在每次访问该属性时获取一个新实例。

于 2017-11-21T13:19:15.000 回答