Как выполнить переход из SKScene?

Я пытался выполнить переход из слоя SKScene набора спрайтов. Мое приложение требует, чтобы пользователь коснулся изображения на сцене, что приведет к появлению нового UIViewController. Но каждый раз, когда я пытаюсь выполнить из игрового слоя SKScene, он выдает мне результат с ошибкой идентификатора. У меня есть переход, и я указал его с идентификатором.

Мой простой вопрос: как можно выполнить переход с запущенным игровым слоем SKScene? Пожалуйста, помогите мне.


person Arjun Busani    schedule 02.10.2013    source источник


Ответы (2)


Переходы принадлежат контроллерам представления, а не сценам SpriteKit. Если вы хотите выполнить переход из кода обработки событий узла SpriteKit, вам нужно найти контроллер представления, которому принадлежит представление, представляющее сцену. Например, в методе touchesBegan:withEvent: подкласса SKScene:

UIViewController *vc = self.view.window.rootViewController;
[vc performSegueWithIdentifier:@"id" sender:nil];
person rickster    schedule 02.10.2013
comment
это не сработало для меня, мне пришлось использовать ответ здесь: stackoverflow.com/questions/27053436/ - person Rachel Harvey; 22.06.2016
comment
@RachelHarvey: Извините, код в моем ответе — это всего лишь один пример того, как получить VC, из которого вы можете перейти. Что вам действительно нужно, так это контроллер представления, который владеет сценой и имеет переход, который вы ищете — если ваш SKScene представлен в контроллере представления, который находится внутри контроллера представления вкладок или контроллера навигации, корневой VC, вероятно, не является тот, у которого есть ваш переход. - person rickster; 22.06.2016

Быстрая версия:

self.view!.window!.rootViewController!.performSegueWithIdentifier("gameOverSegue", sender: self)
person A.G    schedule 09.11.2015
comment
Пожалуйста, добавьте пояснения к вашему ответу! - person ρss; 09.11.2015