【发布时间】:2015-01-16 13:53:00
【问题描述】:
我已经尝试了我在 Stack Overflow 和其他任何地方在线上看到的所有内容,但我无法弄清楚如何从我的 SKScene 类中呈现 viewController。我有 3 个场景,其中一个场景中有名为“buttonFacebook”和“buttonTwitter”的 Facebook/Twitter 节点。我正在使用 Switch 语句来检查 touchesBegan 中的节点名称。
我认为最接近实现这一目标的最佳帖子在这里:swift spritekit Facebook share button
在我的 SKScene 类“GameSceneGamePlay”中,如果我的 Switch 能够识别何时触摸 Facebook 按钮,我就有这个案例:
case "facebook":
func showTweetSheet() {
let tweetSheet = SLComposeViewController(forServiceType: SLServiceTypeTwitter)
tweetSheet.completionHandler = {
result in
switch result {
case SLComposeViewControllerResult.Cancelled:
//Add code to deal with it being cancelled
break
case SLComposeViewControllerResult.Done:
//Add code here to deal with it being completed
//Remember that dimissing the view is done for you, and sending the tweet to social media is automatic too. You could use this to give in game rewards?
break
}
}
tweetSheet.setInitialText("Test Twitter") //The default text in the tweet
tweetSheet.addImage(UIImage(named: "TestImage.png")) //Add an image if you like?
tweetSheet.addURL(NSURL(string: "http://twitter.com")) //A url which takes you into safari if tapped on
self.presentViewController(tweetSheet, animated: false, completion: {
//Optional completion statement
})
}
当我尝试执行 self.presentViewController(tweetSheet, animated: false, ....“GameSceneGamePlay 没有名为 presentViewController 的成员”时出现错误。
我正在尝试使用上面引用的帖子中的这 2 条语句来触发该函数,但我无法克服 presentViewController 的错误。
NSNotificationCenter.defaultCenter().postNotificationName("facebookPost", object: nil)
NSNotificationCenter.defaultCenter().addObserver(self, selector: "showTweetSheet", name: "facebookPost", object: nil)
有人可以给我一些建议如何克服这个错误,或者我是否/如何需要创建一个新的 viewController?我尝试使用 UIViewController 创建一个类,但也无法呈现。
【问题讨论】:
标签: ios facebook swift sprite-kit presentviewcontroller