2014-09-21 5 views
0

Im пытается сделать переход между двумя SKScenes. Но в настоящее время, когда я запускаю свой код и представляю новый SKScene (нажатием кнопки), новая сцена представлена ​​и работает отлично, за исключением того, что некоторые элементы, содержащиеся в пройденной сцене, все еще присутствуют (кнопка и фон) Согласно Apple Sprite Руководство по программированию на компакт-диске (для Obj.-c) стр. 66 «Сильная ссылка на старую сцену автоматически удаляется», и если это так, я не понимаю, почему у меня все еще есть элементы из моей старой сцены. И как я освобожу старый сценарий, так что ничего не присутствует в моей новой сцене, а также для целей памяти. Вот код, о том, как Im представляя свою новую сцену этот код находится внутри моего Menu.swift не в моей GameViewController.swift сцене:dealloc old SKscene 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

элементы пользовательского интерфейса, такие как UiButtons и UIViews, должны быть удалены вручную из SKView при переходе на новую сцену. – 0x141E

+0

Спасибо, мужчина, это сработало –

ответ

1

Поскольку элементы пользовательского интерфейса добавляются как «подвид» это не зависит из SKScene. Поэтому вы должны удалить их перед представлением новой сцены.

Используйте этот код строки для удаления UiElements

self.buttonAcion.removeFromSuperview() 
Смежные вопросы