我想使用共享表共享文件,并编写了似乎运行良好的代码。但是我一直在日志中看到这些错误消息(使用Xcode 11.3)
[ShareSheet] connection invalidated
我正在测试两个物理设备;运行iOS 13.1.2的iPad和运行11.4的iPhone 6。在装有旧版iOS的iPhone上,我看不到这些消息。两种情况下,共享似乎都可以正常工作。这是我使用文本而不是文件的代码:
let activityViewController = UIActivityViewController(activityItems: ["simple text for test"], applicationActivities: nil)
activityViewController.excludedActivityTypes = [.message, .airDrop]
activityViewController.popoverPresentationController?.sourceView = self.view
self.present(activityViewController, animated: true, completion: nil)
当共享页消失时(该消息是由于用户完成了一项操作,或者是在其外部点击以取消),该消息就会显示。
忽略这些消息是否安全?奇怪的是,它们没有出现在较旧的操作系统中,但出现在新的操作系统中。
答案 0 :(得分:6)
我知道了
[ShareSheet]连接无效
在iOS 13.x的Xcode输出日志中,共享表被压缩并且其中没有任何按钮。
要解决此问题,请将您的sourceView
分配给比self.view
更具体的内容
就我而言,我在视图顶部附近有一些UILabels
,因此我将sourceView
设置为其中之一。例如,在我的父视图控制器中,我有一个名为UILabel
的{{1}},所以我使用了它:
labelCustomerName
答案 1 :(得分:2)
对我来说,当我添加基于Apple developer documentation的代码时,此问题就解决了。
activityViewController.isModalInPresentation = true
顺便说一句,即使按下活动的关闭按钮,它仍然会显示该消息。