【问题标题】:How to implement Facebook and Twitter posting in my Sprite Kit game app?如何在我的 Sprite Kit 游戏应用中实现 Facebook 和 Twitter 发布?
【发布时间】: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


    【解决方案1】:

    您的问题是您试图从 GameSceneGamePlay 中呈现 UIViewController,但在您自己编写时,GameSceneGamePlay 是 SKScene 的一个实例,而不是 UIViewController。

    presentViewController 是在 UIViewController 而不是 SKScene 上找到的方法,这就是您收到错误的原因。

    要解决这个问题,您可以保留对呈现您的 SKScene 的 UIViewController 的引用,如 this post 中所述,然后要求该视图控制器呈现您的 tweetSheet。

    【讨论】:

      猜你喜欢
      • 2015-12-16
      • 1970-01-01
      • 1970-01-01
      • 2014-07-14
      • 1970-01-01
      • 1970-01-01
      • 2015-05-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多