2016-10-29 112 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) –

相關問題