0

我有一个名为 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?

4

1 回答 1

1

segue 用于首先引入下一个视图控制器。

于 2016-09-14T13:25:06.997 回答