下面的代码旨在根据所选的不同平台共享不同的文本和不同的图像(UIImage
和NSData
)。麻烦的是没有任何图像从activityImageShare()
传递到UIActivityViewController
。UIActivityViewController not sharing images
问:
什么可能是错在这里到底是什么?
我怎样才能纠正下面的代码,以确保
activityImageShare()
股的图像,并确保他们拿起作为activityType
通过UIActivityViewController
?
代码:
1 - 四象,三UIImage
和一个NSData
。
var myImage1: UIImage!
var myImage2: UIImage!
var myImage3: NSData!
var myImage4: UIImage!
2 - 定义基于平台选择以传递给UIActivityViewController
图像。
class activityImageShare: NSObject, UIActivityItemSource {
@objc func activityViewControllerPlaceholderItem(activityViewController: UIActivityViewController) -> AnyObject {
return ""
}
@objc func activityViewController(activityViewController: UIActivityViewController, itemForActivityType activityType: String) -> AnyObject? {
switch activityType {
case UIActivityTypePostToFacebook:
return myImage1
case UIActivityTypePostToTwitter:
return myImage2
case UIActivityTypePostToWeibo:
return myImage3
default:
return myImage4
}
}
}
3 - 根据选择传递给UIActivityViewController
的平台定义文本。
class activityTextShare: NSObject, UIActivityItemSource {
@objc func activityViewControllerPlaceholderItem(activityViewController: UIActivityViewController) -> AnyObject {
return ""
}
@objc func activityViewController(activityViewController: UIActivityViewController, itemForActivityType activityType: String) -> AnyObject? {
switch activityType {
case UIActivityTypePostToFacebook:
return "This is my text 1."
case UIActivityTypePostToTwitter:
return "This is my text 2."
case UIActivityTypePostToWeibo:
return "This is my text 3."
default:
return "This is my text 4."
}
}
}
4 - 基于文本和activityTextShare()
和activityImageShare()
定义的图像当前UIActivityViewController
。在activityViewControllerPlaceholderItem(activityViewController: UIActivityViewController)
func myShareActivity() {
let activity = UIActivityViewController(activityItems: [activityTextShare(), activityImageShare()], applicationActivities: nil)
self.presentViewController(activity, animated: true, completion: nil)
}