SKScene如何与其容器SKView进行通信?

时间:2017-08-01 20:16:36

标签: ios swift sprite-kit uikit

我在SKScene中显示了SKView。我想要一种方法将信息从场景发送到视图,以便以后与控制器一起使用。

例如,考虑将视图控制器作为SKView的委托,并且SKView需要在点击其呈现的场景的某个部分时通知UIViewController。 / p>

1 个答案:

答案 0 :(得分:3)

对于这种情况,

SKScene有一个方便的实例成员.view。要访问标准SKView方法和属性,您可以使用它:

self.view?.addGestureRecognizer(pinchGestureRecognizer)

如果您的包含视图是SKView子类,则可以向下转换.view以访问自定义方法:

if let myView = self.view as? MyCustomViewClass {
    myView.sceneWasTapped()
}

请注意.view是可选的;如果场景尚未添加到视图中,它将为零。当场景添加到视图中时,场景会调用didMove(to view: SKView),因此这是处理依赖.view现有内容的好地方。