首页 文章

我是通过ViewController加载ViewController吗?

提问于
浏览
1

嗨我有一个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 回答

  • 0

    如果正确使用展开segue,则不会创建新的视图控制器 . 从它的外观来看就是这样 . 如果你仍然没有信心你可以注销 println(\(self)) 并确保它(我的swift生锈了,但我认为这是你如何注销) .

    您的问题 Headers 询问视图控制器,但您的问题信息询问有关创建其他视图的信息 . 这也不是问题 . 当你这样做

    let skView = self.view as SKView
    

    您将获得视图控制器的当前视图,并将其转换为SKView . 您根本不会重新创建另一个视图 .

    希望这会有所帮助 .

相关问题