从SKScene呈现在main.storybord中创建的另一个视图控制器场景

时间:2016-07-31 09:58:42

标签: ios swift sprite-kit nsnotificationcenter skscene

我正在努力尝试呈现一个名为GameEndViewController的视图控制器,我在main.storyboard中使用som按钮和标签创建了一个名为PlayGameScene的SKScene自动布局。我不知道如何使用NSNotificationCenter使GameViewController呈现GameEndViewController。

有人可以告诉我如何使用NSNotificationCenter使用swift从PlayGameScene呈现GameEndViewController,或者将我链接到我可以学习它的网站吗?

提前致谢!

2 个答案:

答案 0 :(得分:0)

您不使用NSNotificationCenter来呈现新视图。 NSNotifications可用于您的应用程序的一部分,以告知您的应用程序的另一部分异步发生,但这听起来不像您要求的那样。

在游戏结束时创建一个新的视图控制器,在故事板中创建一个segue,然后按照in this SO answer所述以编程方式触发该segue。

然而,作为替代方案,请考虑保留在相同的视图控制器中,而是在SKView中呈现“游戏结束”SKSCene,因为这可以提供更好的用户体验。

答案 1 :(得分:0)

我发现,我可以使用NSNotificationCenter告诉SKScene的视图控制器通过触发故事板中创建的segue来更改视图。

我将以下代码写入GameViewController:

NSNotificationCenter.defaultCenter().addObserver(self, selector: "showGameEndViewController", name: "showGameEndViewController", object: nil)
}
func showGameEndViewController() -> Void {
    performSegueWithIdentifier("gameOverSegue", sender: nil)
}

作为NSNotificationCenter消息的接收者。

接下来,我将发件人代码添加到SKScene:

        self.view?.presentScene(nil)
    NSNotificationCenter.defaultCenter().postNotificationName("showGameEndViewController", object: nil)

最后我在GameViewController和GameEndViewController之间的main.storyboard中创建了segue。

相关问题