Вот так, как я перемещаться между различными ViewControllers:Сцена Переход больше не работает после изменения ViewController
let newViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "viewController3")
UIApplication.topViewController()?.present(newViewController, animated: true, completion: nil)
со следующим расширением:
extension UIApplication {
class func topViewController(base: UIViewController? = UIApplication.shared.keyWindow?.rootViewController) -> UIViewController? {
if let nav = base as? UINavigationController {
return topViewController(base: nav.visibleViewController)
}
if let tab = base as? UITabBarController {
if let selected = tab.selectedViewController {
return topViewController(base: selected)
}
}
if let presented = base?.presentedViewController {
return topViewController(base: presented)
}
return base
}
}
А вот это я вызываю сценарии в моем SKScene (несколько):
let transition = SKTransition.fade(withDuration: 2)
let nextScene = NewScene(size: scene!.size)
nextScene.scaleMode = .aspectFill
scene?.view?.presentScene(nextScene, transition: transition)
Все работает нормально, прежде чем переключать ViewControllers. Как только переключение было выполнено, я больше не могу ссылаться на переход в своем SKScene, приложение застыло без каких-либо ошибок с Xcode (iPad подключен к Mac с живой отладкой)
Знаете ли вы, что происходит?
Я использую Swift 3 и SpriteKit с помощью ViewControllers, чтобы иметь возможность использовать Vuforia static lib в прямой сцене ViewController (UIView).