Swift SpriteKit委托模式

时间:2015-08-16 13:22:35

标签: ios swift delegates

我一直在努力学习如何最近使用代理,实际上似乎在很大程度上理解它。但是我有一个问题。

我有1个GameViewController,1个StartScene和1个MenuScene

在我的GameViewController中,我有两种方法可以从MenuScene调用。到目前为止,我一直在使用NSNotification,它工作正常,但我正在尝试使用代理。

所以我在MenuScene

中设置了一个协议
 protocol MenuSceneDelegate {
 func gameOver()
 func showGameCenter()
}

我比这样引用它

 var menuSceneDelegate: MenuSceneDelegate?

在GameViewController中,我在顶部添加了MenuSceneDelegate。到目前为止,一切都很标准。但是我遇到的主要问题是当我在GameViewController中设置委托时如此

 let skView = view as! SKView!
    var scene = StartScene(size: skView.bounds.size)

    skView.ignoresSiblingOrder = true
    scene.scaleMode = .ResizeFill

    skView.presentScene(scene)

    scene.menuSceneDelegate = self   //Sets delegate to StartScene not MenuScene

它仅适用于StartScene。如何将GameViewController委托从StartScene设置为MenuScene。如果我首先展示MenuScene,一切正常。但是我首先介绍了StartScene,因此我想了解如何将委托设置为MenuScene。

我尝试了下面这样的事情,但它不起作用,只是看起来不对

 var menuScene = MenuScene(size: skView.bounds.size)
 menuScene.menuSceneDelegate = self

我将不胜感激任何帮助或支持。非常感谢你

0 个答案:

没有答案