嗨我有一个spriteKit游戏设置,每次用户死亡时我得到一个弹出ViewController与再试一次按钮和一些iAds设置 .
我有一个segue到viewController和一个从VC到gameViewController的展开segue .
当我调用unwind功能时,我会出于不同的原因重新初始化场景 . 我的问题是,我是否创建了视图视图,最终导致崩溃或我正确地重新初始化场景 . 我从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
}
}
1 回答
如果正确使用展开segue,则不会创建新的视图控制器 . 从它的外观来看就是这样 . 如果你仍然没有信心你可以注销
println(\(self))
并确保它(我的swift生锈了,但我认为这是你如何注销) .您的问题 Headers 询问视图控制器,但您的问题信息询问有关创建其他视图的信息 . 这也不是问题 . 当你这样做
您将获得视图控制器的当前视图,并将其转换为SKView . 您根本不会重新创建另一个视图 .
希望这会有所帮助 .