从GameScene到viewController Swift 3
我需要从GameScene到UIViewController制作一个segue。 到目前为止,我的代码如下:
在GameViewController.swift中我添加了:
if let view = self.view as! SKView? { if let scene = SKScene(fileNamed: "GameScene") { scene.scaleMode = .aspectFill scene.viewController = self view.presentScene(scene) } ...
在我的GameScene.swift中我添加了
class GameScene: SKScene, SKPhysicsContactDelegate { var viewController: UIViewController? ...
以及
func returnToMainMenu(){ self.viewController.performSegueWithIdentifier("push", sender: viewController) }
所以我的问题是,当我声明 – scene.viewController = self – 我得到一个错误,说“类型’SKScene’的值没有成员’viewController’”。 我该怎么做才能解决这个问题?
问题是viewController
属性是在GameScene
声明的,但是在创建场景时它是SKScene
类型。 修复它的简单方法是将场景初始化为GameScene
然后您将可以访问GameScene
声明的成员。
if let scene = GameScene(fileNamed: "GameScene") { // Other code scene.viewController = self }
此外,您应该在返回主菜单时尝试退出序列,但这是另一个主题。