Я пытаюсь создать экран паузы в своей игре. Я добавил viewController «PauseScreen» в свою раскадровку с идентификатором раскадровки и идентификатором восстановления, установленным как «PauseScreenID», и для перехода к экрану паузы я создал функцию в «GameScene»:
func pauseSceenTransition(){
let viewController = UIStoryboard(name: "Main", bundle:nil).instantiateViewControllerWithIdentifier("PauseScreenID") as UIViewController
let currentViewController = (UIApplication.sharedApplication().delegate as AppDelegate)
currentViewController.window?.rootViewController?.presentViewController(viewController, animated: false, completion: nil)
}
Однако, когда он вызывается, я получаю сообщение об ошибке:
Предупреждение. Попытка представить ‹AppName.PauseScreen: 0x7fae61fe5ff0> в ‹AppName.StartScreenViewController: 0x7fae61f79980>, чье представление не находится в иерархии окон!
«StartScreenViewController» — это контроллер представления для моего начального экрана и начальный контроллер представления. Затем он переходит к «GameScene», куда должен перейти «PauseScreen». Это работает, если я сделаю начальный контроллер представления "GameViewController"/"GameScene", поэтому я предполагаю, что мне нужно изменить вторую строку:
let currentViewController = (UIApplication.sharedApplication().delegate as AppDelegate)
так что он представляет «PauseScreen» на «GameViewController», а не на «StartScreenViewController», но я не уверен, как это сделать.