2016-10-29 75 views
1

我需要从GameScene到UIViewController进行一个segue。到目前为止我的代码如下:Segue从GameScene到一个viewController Swift 3

在我加入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 =自我 - 我得到一个错误,说“类型的值S KScene'没有成员'viewController'“。我能做些什么来解决这个问题?

回答

2

问题是viewController属性在GameScene中声明,但创建场景时它的类型为SKScene。解决这个问题的简单方法是将场景初始化为GameScene,然后您将可以访问在GameScene中声明的成员。

if let scene = GameScene(fileNamed: "GameScene") { 
    // Other code 
    scene.viewController = self 
} 

此外,你应该尝试退出seque当返回到主菜单,但这是另一个话题。

+0

为了好奇。什么是退出Segue? –

+0

你可以阅读关于退出seque在这个[答案](http://stackoverflow.com/questions/12561735/what-are-unwind-segues-for-and-how-do-you-use-them) –

相关问题