嗨我有一个spriteKit游戏设置,每次用户死亡时我会弹出ViewController并再次尝试按钮和一些iAd设置。
我有一个到viewController的segue和一个从VC到gameViewController的unwind segue。
当我调用unwind func时,我会出于不同的原因重新初始化场景。我的问题是,我是否创建了视图视图,最终导致崩溃或我正确地重新初始化场景。我从viewDidLoad中获取代码并将其放入一个名为" setUp()"的函数中。我从unwindSegue中调用该函数。
检查出来:(全部在GameViewController中)
var currentLevel: Int!
var gameScene = GameScene()
override func viewDidLoad() {
super.viewDidLoad()
currentLevel = gameScene.currentLevel
setUp()
}
@IBAction func perpareForUnwind(unwindSegue: UIStoryboardSegue) {
setUp()
}
func setUp() {
if let scene = GameScene.level(currentLevel) {
// Configure the view.
let skView = self.view as SKView
skView.showsFPS = true
skView.showsNodeCount = true
/* Sprite Kit applies additional optimizations to improve rendering performance */
skView.ignoresSiblingOrder = true
/* Set the scale mode to scale to fit the window */
scene.scaleMode = .AspectFill
skView.presentScene(scene)
scene.viewController = self
}
}
答案 0 :(得分:0)
如果正确使用展开segue,则不会创建新的视图控制器。从它的外观来看就是这样。如果您仍然没有信心可以退出println(\(self))
并确认它(我的swift生锈了,但我认为这就是你记录的方式)。
您的问题标题询问了视图控制器,但您的问题信息询问有关创建其他视图的信息。这也不是问题。当你这样做
let skView = self.view as SKView
您将获取视图控制器的当前视图,并将其转换为SKView。您根本不会重新创建另一个视图。
希望这有帮助。