2015-05-13 98 views
1

我正在尝试为我的游戏制作分享按钮。你知道,当你点击的时候是一个弹出式菜单出现你的选择。我想知道如何让不同的选项说不同的事情。我还想知道如何制作“保存到相机胶卷”选项。生病发布我的代码如下。使用Swift自定义共享内容

@IBAction func share(sender: UIButton) { 

    let firstActivity = "Yes! I scored \(ScoreNumber) in Dotcha! #dotcha @Snowcapps_Dev https://itunes.apple.com/us/app/dotcha!/id977870313?ls=1&mt=8" 

    let activityViewController : UIActivityViewController = UIActivityViewController(activityItems: [firstActivity], applicationActivities: il)   
    self.presentViewController(activityViewController, animated: true, completion: nil)   
} 
+0

您是否看到过iOS8中引入的Share Extensions?它可以帮助你 –

回答

2

如果您想自定义的Twitter,Facebook,邮件等文字时,您可以通过以下方式从类UIActivityItemProvider继承:

class CustomProvider : UIActivityItemProvider { 

    var facebookMessage : String! 
    var twitterMessage : String! 
    var emailMessage : String! 

    init(placeholderItem: AnyObject, facebookMessage : String, twitterMessage : String, emailMessage : String) { 
     super.init(placeholderItem: placeholderItem) 
     self.facebookMessage = facebookMessage 
     self.twitterMessage = twitterMessage 
     self.emailMessage = emailMessage 
    } 

    override func item() -> AnyObject! { 

     switch (self.activityType!) { 
     case UIActivityTypePostToFacebook: 
      return self.facebookMessage 
     case UIActivityTypePostToTwitter: 
      return self.twitterMessage 
     case UIActivityTypeMail: 
      return self.emailMessage 
     default: 
      return "Any Message" 
     }   
    } 
} 

然后你就可以在调用UIActivityViewController例如通过以下方式:

let firstActivityItem = CustomProvider(placeholderItem: "Default", facebookMessage: "Facebook", twitterMessage: "Twitter", emailMessage: "Mail") 
let secondActivityItem : NSURL = NSURL(string: "http://www.google.com")! 
let image : UIImage = UIImage(named: "nameofYOurImage.ext")! 

let activityViewController : UIActivityViewController = UIActivityViewController(
     activityItems: [firstActivityItem, secondActivityItem, image], applicationActivities: nil)  

self.presentViewController(activityViewController, animated: true, completion: nil) 

CustomProvider类我只设置Facebook,Twitter和邮件,但你可以把更多的,如果你想,这是ü p给你。

我希望这对你有所帮助。

+0

我读过这个,但它并没有真正帮助我完成代码部分。我正在尝试为电子邮件,Twitter和Facebook创建不同的文本。我也在迅速做到这一点。 –

+0

@CallumBondy查看更新后的答案,但在评论你的问题过于宽泛,不知道你想要的是什么之前,你应该确切地问你想做什么。 –