У меня есть следующая функция
func switchRootViewController(rootViewController: UIViewController) {
let window = UIApplication.shared.windows.first!
window.rootViewController = rootViewController
window.makeKeyAndVisible()
}
И я использую его в представленном контроллере представления, например в PresentedViewController.
let navigationViewController = UINavigationController(rootViewController: PresentedViewController())
present(navigationViewController, animated: true, completion: nil)
Но когда я переключаюсь на нужный контроллер представления, мой представленный контроллер представления не деинициализируется. Я должен использовать этот способ, сначала уволить:
self.dismiss(animated: true, completion: {
switchRootViewController(rootViewController: HomeViewController.instantiate())
})
вместо простого
switchRootViewController(rootViewController: HomeViewController.instantiate())