如何在SKScene中呈现视图控制器?

时间:2015-02-07 04:34:18

标签: swift uiviewcontroller sprite-kit skscene

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

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中。

谢谢!

1 个答案:

答案 0 :(得分: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)

}

这可能不是最干净的方法,但它对我有用。希望这有帮助!