2016-10-29 5 views
1

Ich muss einen Übergang von einem GameScene zu einem UIViewController machen. Mein Code so weit ist die folgende:Von GameScene zu einem ViewController wechseln Swift 3

Im GameViewController.swift ich hinzugefügt:

if let view = self.view as! SKView? { 
     if let scene = SKScene(fileNamed: "GameScene") { 
      scene.scaleMode = .aspectFill 

      scene.viewController = self 
      view.presentScene(scene) 
     } 
     ... 

und in meinem GameScene.swift Ich habe

class GameScene: SKScene, SKPhysicsContactDelegate { 
    var viewController: UIViewController? 

    ... 

sowie

func returnToMainMenu(){ 

    self.viewController.performSegueWithIdentifier("push", sender: viewController) 

} 

Also mein Problem ist, dass, wenn ich - scene.viewController = selbst - ich bekomme einen Fehler, der sagt "Wert des Typs 'S KScene 'hat kein Mitglied' viewController '". Was kann ich tun, um das zu beheben?

Antwort

2

Das Problem ist, dass die viewController Eigenschaft in GameScene deklariert ist, aber wenn die Szene erstellt wird, ist es vom Typ SKScene. Der einfachste Weg, um es zu beheben wäre es, die Szene als GameScene zu initialisieren, dann haben Sie Zugriff auf die in GameScene deklarierten Mitglieder.

Auch sollten Sie versuchen, ein Ausgang Seque beim Zurückkehren zum Hauptmenü, aber das ist ein anderes Thema.

+0

Aus Gründen der Neugier. Was ist ein Exit-Segment? –

+0

Sie können über die Ausfahrt seque in dieser SO [Antwort] lesen (http://stackoverflow.com/questions/12561735/what-are-unwind-segues-for-and-how-do-you-use-them) –

Verwandte Themen