2016-09-14 9 views
0

NeighborhoodViewControllerというviewControllerが1つあります。これは、NeighborhoodScene.sksというシーンをviewControllerにロードします。これは絶対にうまくいく。 NeighborhoodViewControllerを通して、シーンの特定のノードからセグを作り上げました。これらの2つの機能によって次のことが制御されます。presentSceneが読み込みに間違った表示を引き起こしています

func createSegue(title: String) { 
    performSegueWithIdentifier(title, sender: self) 
} 

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    if let viewController: SearchViewController = segue.destinationViewController as? SearchViewController { 
     viewController.sceneName = "game_1_1" 
    } 
} 

これはすべて正常に動作します。セグが呼び出されています。 SegueはSearchViewControllerという別のVCを立ち上げるためのもので、SearchScene1.sksという独自のシーンを作成するはずです。

これはそのためのコードです:

import UIKit 
import SpriteKit 

class SearchViewController: UIViewController { 
var sceneName: String? 
var chosenScene: GameScene? 

override func viewDidLoad() { 
    super.viewDidLoad() 

    if sceneName == "game_1_1" { 
     chosenScene = GameScene(fileNamed: "SearchScene1") 
    } // TODO: add the rest of the presented scenes here 

    if let scene = chosenScene { 
     // Configure the view. 
     let skView = self.view as! SKView 
     skView.showsPhysics = true 
     skView.showsFPS = true 
     skView.showsNodeCount = true 

     /* Sprite Kit applies additional optimizations to improve rendering performance */ 
     skView.ignoresSiblingOrder = false 

     /* Set the scale mode to scale to fit the window */ 
     scene.scaleMode = .AspectFill 
     scene.viewController = self 
     skView.presentScene(chosenScene) 
    } 
} 
} 

私はskViewためrestorationidentifierをプリントアウトした場合、それは完璧ですSearchViewController、内のビューに関係します。それはすべて、SkView.presentScene(selectedScene)まで無作為に設定されているようですが、NeighborhoodViewControllerを設定しているようです。 SearchViewControllerと関連するsksシーン - SearchScene1を呼び出すにはどうしたらいいですか?

+0

複数のビューコントローラを使用すると、このような複雑なアプローチが必要なのはなぜですか?通常、スプライトキットのゲームでは、最初のシーンをロードするGameViewControllerを1つだけ使用します。シーン内で1つのシーンから別のシーンに直接切り替えるよりも、 – crashoverride777

+0

私は、基本的には、6対7の完全に別々のゲームを構築しており、それぞれのゲームにはまったく似ていないからです。それぞれのビューコントローラを持つことは、私が各ビューを別々に扱うことができるような良い計画のように思えました...私は、異なる環境で同じゲームの仕組みを使いたいならば、異なるシーンのためにいくつかのgamecene.swiftデータを再利用したかったのです。 – illuminatedtype

答えて

1

segueは、nextviewcontrollerを最初に呼び出すために使用されます。

+0

申し訳ありません、あなたは説明できますか? – illuminatedtype

関連する問題