facebook - Presenting UIViewController from SKScene? -
so @ beginning having trouble implementing social media sharing project using swift/sprite-kit. believe have accomplished cannot trigger methods, or seems everybody's struggle, cannot present view controller skscene. first did, create buttons on endgame scene. on touchesended method called nsnotificationcenter. this:
import spritekit import uikit import social class endgamescene: skscene { var facebookbutton: sknode! = nil var twitterbutton: sknode! = nil required init?(coder adecoder: nscoder) { super.init(coder: adecoder) } override init(size: cgsize) { super.init(size: size) // facebookbutton facebookbutton = skspritenode(imagenamed: "facebookbutton") facebookbutton.position = cgpoint(x: self.size.width * 0.3 , y: self.size.height * 0.45); addchild(facebookbutton) // twitterbutton twitterbutton = skspritenode(imagenamed: "twitterbutton") twitterbutton.position = cgpoint(x: self.size.width * 0.5 , y: self.size.height * 0.45); addchild(twitterbutton) } override func touchesended(touches: nsset, withevent event: uievent) { touch: anyobject in touches { let location = touch.locationinnode(self) if facebookbutton.containspoint(location) { nslog("button tapped") nsnotificationcenter.defaultcenter().postnotificationname("facebookid", object: nil) } if twitterbutton.containspoint(location) { nslog("button tapped") nsnotificationcenter.defaultcenter().postnotificationname("twitterid", object: nil) } } } then created socialviewcontroller methods supposed triggered of nsnotificationcenter show sheets. code used it:
import uikit import social class socialviewcontroller: uiviewcontroller { override func viewdidload() { super.viewdidload() nsnotificationcenter.defaultcenter().addobserver(self, selector: "showtweetsheet", name: "twitterid", object: nil) nsnotificationcenter.defaultcenter().addobserver(self, selector: "showfacebooksheet", name: "facebookid", object: nil) } func showtweetsheet() { let tweetsheet = slcomposeviewcontroller(forservicetype: slservicetypetwitter) tweetsheet.completionhandler = { result in switch result { case slcomposeviewcontrollerresult.cancelled: break case slcomposeviewcontrollerresult.done: break } } tweetsheet.setinitialtext("test twitter") tweetsheet.addimage(uiimage(named: "testimage.png")) tweetsheet.addurl(nsurl(string: "http://twitter.com")) self.presentviewcontroller(tweetsheet, animated: false, completion: { }) } func showfacebooksheet() { let facebooksheet = slcomposeviewcontroller(forservicetype: slservicetypefacebook) facebooksheet.completionhandler = { result in switch result { case slcomposeviewcontrollerresult.cancelled: break case slcomposeviewcontrollerresult.done: break } } facebooksheet.setinitialtext("test facebook") facebooksheet.addimage(uiimage(named: "testimage.png")) facebooksheet.addurl(nsurl(string: "http://facebook.com")) self.presentviewcontroller(facebooksheet, animated: false, completion: { }) } i literally have no idea on might missing or doing wrong. i've read several posts on , using nsnotificationcenter supposed best way accomplish seems not working me. if there there me out appreciate it. in advance!
you can download facebook sdk https://github.com/facebook/facebook-android-sdk. , after create key hash using cmd prompt. more details create key hash see link https://developers.facebook.com/docs/android/getting-started
Comments
Post a Comment