Я разрабатываю игру SpriteKit с двумя разными сценами (MainMenu.sks и Settings.sks).У меня также есть UIViewController.
В главном меню пользователь может нажать «Настройки», после чего приложение загрузит сцену Settings.sks и представит ее.
Это делается с помощью этого кода:
// Move to Settings.sks
let transition = SKTransition.flipVertical(withDuration: 1.0)
let loadScene = SettingsScene(fileNamed: "SettingsScene")
loadScene?.scaleMode = self.scaleMode
self.view?.presentScene(loadScene!, transition: transition)
В сцене Settings.sks пользователь может нажать на SKLabelNode «Изменить имя пользователя», в результате чего приложение загрузит UIViewController, выполнив переход,
UIViewController содержит UITextField и UIButton.UIButton возвращает пользователя на MainMenu.sks.
Однако, когда я делаю это, создается впечатление, что новая сцена MainMenu накладывается на другую, вызывая зависание приложения и не реагируя на любые сенсорные жесты.Я могу видеть из nodeCount, что узлы удвоены.
Обходной путь - загрузка UIViewController непосредственно из MainMenu.sks (также через segue).При этом приложение работает просто отлично.
Я подозреваю, что проблема заключается в способе загрузки Settings.sks.
Чего мне не хватает?Может быть, выгрузить весь SKView перед выходом?