UIActivityViewController显示"无法加载"在iOS 11中排

时间:2017-07-06 13:21:15

标签: uiactivityviewcontroller ios11

我在几个以前版本的应用程序中使用了UIActivityViewController实例,以便通过AirDrop和其他服务共享内容。现在,在没有重新编译的情况下,当在iOS 11 Beta中运行应用程序时,对话框(UIActivityViewController实例)显示以下行,其中包含消息"无法加载"

enter image description here

以下是代码:

let handlerOk = { () -> Void in
    let activityItems = [NSURL(fileURLWithPath: fullPath, isDirectory: true)]
    self.viewControllerShare = UIActivityViewController(activityItems: activityItems, applicationActivities: nil)

    if let viewControllerShare = self.viewControllerShare {
        viewControllerShare.popoverPresentationController?.sourceView = sender

        let excludedActivities = [
            UIActivityType.postToFacebook,
            UIActivityType.postToTwitter,
            UIActivityType.postToWeibo,
            //UIActivityType.message,
            //UIActivityType.mail,
            UIActivityType.print,
            UIActivityType.copyToPasteboard,
            UIActivityType.assignToContact,
            UIActivityType.saveToCameraRoll,
            UIActivityType.addToReadingList,
            UIActivityType.postToFlickr,
            UIActivityType.postToVimeo,
            UIActivityType.postToTencentWeibo,
            UIActivityType.openInIBooks
        ]
        viewControllerShare.excludedActivityTypes = excludedActivities

        self.present(viewControllerShare, animated: true, completion: nil)
    }
}

现在我正在使用Swift 4中的XCode 9进行编译,但我不认为这是相关的,因为如果在iOS 11中运行较旧版本的应用程序(使用XCode 8编译) .somenthing甚至从TestFlight下载二进制文件)问题是一样的。所以这看起来像iOS 11 API问题......

对话框初始化是否有任何新内容可能会阻止"无法加载"要显示的行?

编辑:我测试了使用相同共享对话框的第三方应用(来自Apple),发现该行属于iCloud。但我没有在我的应用程序中使用iCloud,因此之前的UIActivityViewController行为是正确的:它只是没有显示任何内容。所以我做了一个实验:禁用iOS'设置第三方应用程序的iCloud权限,它显示相同的unkind"无法加载"信息。我希望这不是最终iOS 11版本的工作方式,而且它只是一个Beta问题。

尽管如此,仍然欢迎变通方法!谢谢!

0 个答案:

没有答案