我正在努力尝试呈现一个名为GameEndViewController的视图控制器,我在main.storyboard中使用som按钮和标签创建了一个名为PlayGameScene的SKScene自动布局。我不知道如何使用NSNotificationCenter使GameViewController呈现GameEndViewController。
有人可以告诉我如何使用NSNotificationCenter使用swift从PlayGameScene呈现GameEndViewController,或者将我链接到我可以学习它的网站吗?
提前致谢!
答案 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。