【问题标题】:Am I loading ViewController over ViewController我是在 ViewController 上加载 ViewController
【发布时间】:2015-05-31 02:12:44
【问题描述】:

您好,我设置了一个 spriteKit 游戏,每次用户死亡时,我都会弹出一个 ViewController,其中包含重试按钮和一些 iAd 设置。

我有一个到 viewController 的 segue 和一个从 VC 到 gameViewController 的 unwind 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

    }
}

【问题讨论】:

    标签: ios iphone swift uiviewcontroller sprite-kit


    【解决方案1】:

    如果您正确使用展开转场,则不会创建新的视图控制器。从它的外观来看,情况就是如此。如果您仍然不确定,可以注销println(\(self)) 并确保它(我的 swift 生锈了,但我认为这就是您注销的方式)。

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

    let skView = self.view as SKView
    

    您正在获取视图控制器的当前视图并将其转换为 SKView。您根本没有重新创建另一个视图。

    希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 2013-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-17
      相关资源
      最近更新 更多