Partage des connaissances à l'aide de Swift :
Modification du contrôleur de vue racine à partir d'une classe autre que app delegate.swift
let appdelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
var homeViewController = mainStoryboard.instantiateViewControllerWithIdentifier("HomeViewController") as! HomeViewController
let nav = UINavigationController(rootViewController: homeViewController)
appdelegate.window!.rootViewController = nav
J'espère que cela sera utile à quelqu'un.
Le changement de rootviewcontroller avec l'animation peut être réalisé avec :
UIView.transitionWithView(self.window!, duration: 0.5, options: UIViewAnimationOptions.TransitionFlipFromLeft, animations: {
self.window?.rootViewController = anyViewController
}, completion: nil)
Nous pouvons également écrire une méthode généralisée, similaire à la méthode suivante ceci.