2015-02-07 35 views
0

我想弄清楚如何为我的SpriteKit游戏使用分享表,当我尝试从我的场景中呈现视图控制器时,它会给我一个错误。如何在SKScene中显示视图控制器?

if self.nodeAtPoint(location) == self.shareButton { 
     var tempMessage = "I just got \(score) on [insert app]" 

     let activityVC:UIActivityViewController = UIActivityViewController(activityItems: [tempMessage], applicationActivities: nil) 

     self.presentViewController(activityVC, animated: true, completion: nil) 
} 

这是在我的GameOverScene中。你究竟如何去管理Swift中的viewcontrollers,因为我看到的答案都在OBJ-C中。

谢谢!

+0

你有什么错误? – 2015-02-07 04:40:07

+0

“GameOverScene没有名为presentViewController的成员” – riverhawk 2015-02-07 04:44:18

+1

“self.presentViewController”必须从包含“SKScene”视图的ViewController调用。 – rakeshbs 2015-02-07 04:57:42

回答

3

好的,我做了一些挖掘,发现了一个可行的解决方案。

基本上,我使用了NSNoticationCenter,并在我的GameViewController文件中设置了视图控制器。

override func viewDidLoad() { 
. 
. 
NSNotificationCenter.defaultCenter().addObserver(self, selector: "showSocialNetworks", name: "showSocialNetworksID", object: nil) 
} 

并提出被称为

func showSocialNetworks(){ 
    var tempMessage = "Insert your message to be shared on social network" 

    let activityVC:UIActivityViewController = UIActivityViewController(activityItems: [tempMessage], applicationActivities: nil) 

    self.presentViewController(activityVC, animated: true, completion: nil) 
} 

现在跳回到我的GameOverScene功能,我设定,让当用户点击分享按钮,它会执行以下代码

if self.nodeAtPoint(location) == self.shareButton { 
      NSNotificationCenter.defaultCenter().postNotificationName("showSocialNetworksID", object: nil) 

} 

这可能不是最干净的方式,但它适用于我。希望这可以帮助!

+1

帮了我很多,谢谢。 – RedEagle2000 2015-09-10 05:50:48

相关问题