每当我尝试使用方法UIDocumentInteractionController
显示presentOptionsMenuFromRect
时,开放应用中都没有附加文件,我在控制台中看到了这个:
Couldn't get file size for (null): (null)
但如果我用presentOpenInMenuFromRect
进行测试,它的效果非常好。我也将presentPreviewAnimated
与其代表一起使用,这也有效。还测试成功切换到UIActivityViewController。我尝试打开的文件是存储在本地文档目录中的PDF
let documentInteractionController = UIDocumentInteractionController.init(URL: url)
documentInteractionController.presentOptionsMenuFromRect(self.view.bounds, inView: self.view, animated: true)
Xcode:7.3.1(Swift) iOS:9.3使用模拟器和设备进行测试,部署目标为8.0
由于
答案 0 :(得分:0)
这是因为在您的代码中,UIDocumentInteractionController实例可能会在到达函数末尾时被释放,而在从菜单中选择一个选项后,需要让其他应用程序正确处理该文件。 / p>
为了避免这个问题,我们需要在对象所有者的生命周期中存在的地方存储对文档交互控制器的强引用(即全局变量)为了让它保持活力。
注意:显然,Open In菜单中的某些选项以及与AirDrop共享时不会发生此行为。