Переход от SKScene к UIViewController не работает

Структура моей раскадровки:

1.Screen1 (UIViewController)

2.Игровой экран (SKScene)

3.Screen3 (UIViewController)

Я передаю собственный объект UIViewController из Screen1

//Screen1 class

@IBAction func onStartButtonClicked(_ sender: Any) {
    Values.viewController = self
}

на GameScreen при переходе:

//GameScreen class 

struct Values {
   static var viewController: UIViewController!
}

class GameScreen: SKScene {...}

Моя задача — сделать переход от GameScreen к Screen3, используя объект Screen1, который был передан с предыдущего шага:

Values.viewController!.performSegue(withIdentifier: "toScoreSegue1", sender:  self)

Все должно работать нормально, так как я перетащил переход с Screen1 на Screen3, дал ему идентификатор «toScoreSegue1» и вызвал его с помощью объекта Screen1. Однако ничего не происходит.

Нет ошибки и т.

Любая помощь будет высоко ценится!


person NickitaX    schedule 03.05.2017    source источник


Ответы (1)


Я понял проблему!

По ошибке я вызвал PerformSegue на неправильном ViewController.

Мне пришлось вызвать переход на ViewController, который инициализировал представление SKScene:

1.Screen1 (UIViewController)

2.GameScreen (SKScene) - имеет свой ViewController, который надо использовать вместо Screen1!

3.Screen3 (UIViewController)

Я действительно надеюсь, что кто-то с такой же проблемой может найти это полезным.

person NickitaX    schedule 03.05.2017