我试图在两个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)
}
答案 0 :(得分:1)
因为UI元素被添加为"子视图"这些不依赖于SKScene。因此,您必须在呈现新场景之前删除它们。
使用此行代码删除UIElements
self.buttonAcion.removeFromSuperview()