我想使用共享表共享一个文件,并且已经编写了看起来工作正常的代码。但是我一直在日志中看到这些错误消息(使用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?.barButtonItem = myBarButtonItem
self.present(activityViewController, animated: true, completion: nil)
当共享表消失时(因为用户完成了操作,或者他们在其外部点击以取消),显示该消息。
忽略这些消息安全吗?奇怪的是,它们在旧的操作系统中没有出现,但在新的操作系统中却出现了。
2020年3月20日编辑:我已验证我提供的源或barButtonItem是否有效。我已更改代码以匹配使用UIBarButtonItem的代码,但仍然看到ShareSheet连接无效错误。
3条答案
按热度按时间px9o7tmv1#
我得到了
[ShareSheet]连接无效
在iOS 13.x上的Xcode输出日志中,共享表被压扁,其中没有任何按钮。
要解决此问题,请将
sourceView
分配给比self.view
更具体的对象在我的例子中,我有一些
UILabels
靠近我的视图顶部,所以我把我的sourceView
设置为其中之一。例如,在我的父视图控制器中,我有一个名为labelCustomerName
的UILabel
,所以我使用:js5cn81o2#
对我来说,当我添加这段代码时,它就解决了,基于Apple developer documentation。
顺便说一句,看起来即使按下活动的关闭按钮,它仍然显示该消息。
hmtdttj43#
试试这个...