presentScene вызывает неправильное представление для загрузки
У меня есть один viewController под названием NeighborhoodViewController. Он загружает сцену в viewController, который называется NeighborhoodScene.sks. Это работает абсолютно нормально. Я установил переход от определенного узла в сцене через NeighborhoodViewController. Эти две функции управляют этим:
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 предназначен для запуска другого VC под названием SearchViewController, который должен вызывать свою собственную сцену, 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(selectedScene) в какой-то момент случайно не установит NeighborhoodViewController? Как сделать так, чтобы он вызывал SearchViewController и связанную с ним сцену sks - SearchScene1?
1 ответ
Segue используется для того, чтобы сначала принести nextviewcontroller.