我有一个名为 NeighborhoodViewController 的 viewController。它将一个名为 NeighborhoodScene.sks 的场景加载到 viewController 中。这绝对没问题。我已经通过 NeighborhoodViewController 从场景中的特定节点装配了一个 segue。这两个函数控制这个:
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。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 的恢复标识符,它与 SearchViewController 中的视图有关,这是完美的。在 skView.presentScene(chosenScene) 之前,这一切似乎都运行良好,此时它似乎正在随机设置 NeighborhoodViewController?如何让它调用 SearchViewController 和相关的 sks 场景——SearchScene1?