dealloc old SKscene Swift

时间:2014-09-21 01:34:08

标签: xcode swift sprite-kit

我试图在两个SKScenes之间进行转换。但是目前当我运行我的代码并呈现新的SKScene(通过按下按钮)时,新场景将呈现并完美运行,除了传递的场景中包含的一些元素仍然存在(按钮和背景) 根据Apple的Sprite Kit编程指南(For Obj.-c)第66页"对旧场景的强引用会被自动删除"如果是这样的话,我不明白为什么我仍然有旧场景中的元素。我如何解除旧场景,以便在我的新场景和存储目的中不存在任何内容。这是关于我如何呈现我的新场景的代码,这段代码在我的Menu.swift中不在我的GameViewController.swift场景中:

func buttonAction(sender:UIButton!) {       

    let skView = self.view? as SKView?
    skView?.ignoresSiblingOrder = true
    let gamingScene = GameScene(size: CGSize(width: 1024, height: 768))
    gamingScene.scaleMode = .AspectFill
    skView?.presentScene(gamingScene)   

}

1 个答案:

答案 0 :(得分:1)

因为UI元素被添加为"子视图"这些不依赖于SKScene。因此,您必须在呈现新场景之前删除它们。

使用此行代码删除UIElements

self.buttonAcion.removeFromSuperview()