UIDocumentPickerViewController在iOS13上无法工作

23

在我的应用程序中,我使用UIDocumentPickerViewController来允许用户选择文件(导入),但从iOS 13开始,该功能停止工作,基本上文档选择器是打开的,但用户无法选择文件(点击文件无反应)。

我创建了一个简单的示例以隔离代码:

class ViewController: UIViewController, UIDocumentPickerDelegate {

    @IBAction func openDocumentPicker(_ sender: Any) {
        let types = [String(kUTTypePDF)]
        let documentPickerViewController = UIDocumentPickerViewController(documentTypes: types, in: .import)
        documentPickerViewController.delegate = self
        present(documentPickerViewController, animated: true, completion: nil)
    }

    func documentPickerWasCancelled(_ controller: UIDocumentPickerViewController) {
        print("Cancelled")
    }

    func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentsAt urls: [URL]) {
        print("didPickDocuments at \(urls)")
    }

}

示例项目: https://github.com/Abreu0101/document-picker-iOS13-issue

参考资料: 在此输入图片描述


@rmaddy 请将示例项目制作为iOS 11 beta 6版本(但我正在使用Xcode 10.2)。这在模拟器和真实设备(iPhone 7 iOS 13.1)上都发生了。 - José Roberto Abreu
1
@JamieA 看起来是在 iOS 13 beta 上的一个 bug。升级到官方的 iOS 13 后开始工作。顺便注意到这不是我应用程序特有的,其他应用程序(例如 Slack)也会出现类似情况。 - José Roberto Abreu
1
我们的应用程序也遇到了同样的问题,但并非所有设备都有此问题。期待解决方案。提前致谢。 - Pradip
iPadOS 13.2.3也存在同样的问题。之前的版本只在模拟器上无法工作,现在实际设备上也无法工作。 - John F Donigan
1
我从苹果下载了“Particles”应用程序演示包,它的表现方式相同。 - John F Donigan
显示剩余5条评论
3个回答

2
当我遇到这个问题时,我意识到当我从“浏览”选项卡中选择文件时,它是有效的,因为我实现了“didPickDocumentAt”方法,但当我从“最近”选项卡中点击文件时,它无效。为了使其在“最近”选项卡上起作用,我不得不实现“didPickDocumentsAt”方法,它做相同的事情,但处理一个URL数组。

2

作者要求支持iOS 13。 - Softlion
@Softlion,问题不在于iOS 13,而在于操作系统(Mojave或更低版本),因此要解决问题,只需升级您的Mac OS即可解决问题。 - saad agoujil

0

我在iOS 13.2.2上遇到了这个问题。更新到iOS 13.2.3后,该问题得到了修复,无需进行任何代码更改。


1
我理解你的意思是更新到iOS 13.2.3解决了问题?截至今天(2019年12月6日),我不认为13.3.3版本已经发布。 - Phlippie Bosman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接