swift - 错误 "[ShareSheet] connection invalidated"错误 iOS13+ 但不在 iOS 11.4 上

标签 swift xcode ios-sharesheet

我想使用共享表共享一个文件,并编写了似乎工作正常的代码。但是我一直在日志中看到这些错误消息(使用 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 连接无效错误。

最佳答案

我有

[ShareSheet] connection invalidated



在 iOS 13.x 上的 Xcode 输出日志中,共享表被压扁,其中没有任何按钮。

要修复它,请分配您的 sourceViewself.view 更具体的东西

就我而言,我有一些 UILabels靠近我 View 的顶部,所以我设置了 sourceView到其中之一。例如,在我的父 View Controller 中,我有一个 UILabel命名 labelCustomerName所以我用了那个:
activityViewController.popoverPresentationController?.sourceView = self.labelCustomerName

关于swift - 错误 "[ShareSheet] connection invalidated"错误 iOS13+ 但不在 iOS 11.4 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59433926/

相关文章:

swift - 我正在执行一个帖子请求,我想在其中输入一个问题,并通过帖子请求获得最常见的答案

ios - 如何在应用程序关闭时发送本地通知(快速)?

iphone - 核心数据迁移 xcode 4.2 未更新应用商店中已有应用的数据

ios - XCode 中 ios 应用程序的确切构建过程是什么?

audio - 如何使用 Swift 3 在 App 中共享音频文件?

ios - UIActivityViewController 隐藏我的应用共享扩展

ios - 自定义 UITableViewCell 中的不同高度

swift - 初始化前使用的常量

ios - 静态表格 View 单元格内的动态表格 View

ios - iOS 上的图像共享表中缺少标题和内容文本