UIActivityController分享表是空的

UIActivityController分享表是空的

问题描述:

我提到了很多关于这个问题的SO问题,而且大多数似乎都被解决了,因为OP在模拟器上尝试而不是真正的设备。UIActivityController分享表是空的

我一直都在尝试,但所有我看到的是下面的图像。我之前在不同的项目中使用了相同的代码,因此不确定发生了什么问题。所有选项都丢失,更多为空白。这是在一个真正的设备上,其他应用的分享表格工作正常。

这是我的代码。我正在使用Xcode 8.1(测试版)和iOS 10.1(测试版)。

let objectsToShare = ["My text", URL(string: "http://www.google.com") ] as [Any] 
    let activityVC = UIActivityViewController(activityItems: objectsToShare, applicationActivities: nil) 
    activityVC.excludedActivityTypes = [UIActivityType.addToReadingList, UIActivityType.postToVimeo, UIActivityType.print, UIActivityType.saveToCameraRoll] 

    activityVC.popoverPresentationController?.sourceView = sender 
    self.present(activityVC, animated: true, completion: nil) 

enter image description here

+0

任何帮助与此,任何人? –

+0

确保所有东西都是未包装的或不是可选的,否则不会让它在任何地方共享。答案由@marlo提供,低于 –

我刚刚解决这个问题,我确信,一切都加入到activityItems是解开/不可选

var activityItems: [Any] = [] 

if let shareURL = URL(string: shareLink) { 
    activityItems.append(shareURL) 
} 

if let shareImage = getShareScreenShot() { 
    activityItems.append(shareImage) 
} 

activityItems.append(shareMessage) 

let activity = UIActivityViewController(activityItems: activityItems, applicationActivities: nil) 
+0

完美,像魅力一样工作。感谢和+1 –

+0

拯救我的一天!好的解决方案 –

我有我的物理设备上运行的代码,而无需编辑这可能可以帮助您找出问题的结果:

结果:


代码:

class ViewController: UIViewController { 

    @IBAction func buttonWasTouched(_ sender: UIButton) { 
    let objectsToShare = ["My text", URL(string: "http://www.google.com") ] as [Any] 

    let activityVC = UIActivityViewController(activityItems: objectsToShare, applicationActivities: nil) 
    activityVC.excludedActivityTypes = [UIActivityType.addToReadingList, UIActivityType.postToVimeo, UIActivityType.print, UIActivityType.saveToCameraRoll] 

    activityVC.popoverPresentationController?.sourceView = sender 
    self.present(activityVC, animated: true, completion: nil) 
    } 

} 

iPhone 5S真实的设备,操作系统版本:

enter image description here


的Xcode版本:

enter image description here

我解决这个问题了,像这样:

let activityVC = UIActivityViewController(activityItems: objectsToShare, applicationActivities: nil) 

    activityVC.excludedActivityTypes = [ 
     UIActivityType.assignToContact, 
     UIActivityType.print, 
     UIActivityType.addToReadingList, 
     UIActivityType.saveToCameraRoll, 
     UIActivityType.openInIBooks, 
     UIActivityType(rawValue: "com.apple.reminders.RemindersEditorExtension"), 
     UIActivityType(rawValue: "com.apple.mobilenotes.SharingExtension"), 
    ] 

与可选的约束力和追加的项目数组我没有工作通过拆,给了相同的结果。这是什么工作:

guard let image = UIImage(named: "test.png", let url = URL(string: "https://www.google.com") else { return } 

let activityController = UIActivityViewController(activityItems: [image,url], applicationActivities: nil)