2017-07-19 131 views
1

下面的代码旨在根据所选的不同平台共享不同的文本和不同的图像(UIImageNSData)。麻烦的是没有任何图像从activityImageShare()传递到UIActivityViewControllerUIActivityViewController 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) 
} 

回答

0

尝试返回图像占位符代替 “”