Ich versuche, ein Bild mit Text durch UIActivityViewController
zu teilen. Wenn ich das tue:Geben Sie ein Miniaturbild mit UIActivityViewController
let activityVC = UIActivityViewController(activityItems: [text, image], applicationActivities: nil)
self.presentViewController(activityVC, animated: true, completion: nil)
Alles funktioniert gut. Das Problem ist, dass ich das Bild nur mit bestimmten Aktivitätstypen teilen möchte. Wenn ein Benutzer Facebook nutzt, möchte ich kein Bild haben, für alles andere, was ich tue. Mein Problem ist, diese dumme Methode nie aufgerufen:
optional func activityViewController(_ activityViewController: UIActivityViewController,
thumbnailImageForActivityType activityType: String?,
suggestedSize size: CGSize) -> UIImage?
Welche sollte becuase es in UIActivityItemSource
Protokoll definiert ist. Gibt es dafür irgendwelche Arbeiten?
Also ich glaube, hier einige Fortschritte gemacht haben. Wenn Sie mehrere Werte von self
übergeben, wenn Sie UIActivityViewController
instanziieren, können Sie mehrere Werte in der Delegatenmethode itemForActivityType
zurückgeben. Also, wenn ich dies tun:
let activityVC = UIActivityViewController(activityItems: [self, self], applicationActivities: nil)
kann ich verschiedene Werte wie folgt zurück:
func activityViewController(activityViewController: UIActivityViewController, itemForActivityType activityType: String) -> AnyObject? {
if activityType == UIActivityTypePostToFacebook {
return ["hello", "world"]
}
else {
return ["goodnight", "moon"]
}
}
Es scheint jedoch, dass Sie nur zwei Werte des gleichen Typs zurückgeben kann.
Meine neue Frage ist jetzt, wie würde ich sowohl ein Bild und Text zurückgeben? Die Jagd geht weiter ...