2016-10-31 1 views
0

Dans notre méthode d'application de AppDelegate nous accéder au contrôleur de vue racine:contrôleur Accès vue racine AppDelegate démarrage

let splitViewController = self.window!.rootViewController as! UISplitViewController 
.... set variables on splitViewController 

Puis Une fois connecté nous redirigeons au contrôleur de vue racine:

let storyboard = UIStoryboard(name: "Main", bundle: nil) 
let controller = storyboard.instantiateViewController(withIdentifier: "Home") as UIViewController 
self.present(controller, animated: true, completion: nil) 

Mais il semble que ce processus de connexion efface les variables qui ont été définies à l'étape # a. Vraisemblablement, comme à l'étape #b, nous recréons le contrôleur. Comment pouvons-nous rediriger sans effacer les variables définies dans #a?

+0

Cela signifie que vous voulez changer le contrôleur de vue racine sur le succès de la connexion? –

+0

Je veux juste initialiser le contrôleur de vue racine au démarrage. Et puis rediriger vers après la connexion. –

+0

Si son rootViewcontroller pourquoi avez-vous besoin de rediriger .. Puisque vous accédez au splitViewController comme rootViewController, je pense qu'il est défini dans storyboard.App charge le splitViewController au démarrage .. –

Répondre

0

Nous avons suivi l'approche de la commutation du contrôleur de vue racine lorsque cela était nécessaire. Nous lançons l'application et si l'utilisateur n'est pas connecté, nous définissons la racine à LoginViewController. Après la connexion, nous avons redéfini la racine sur UISplitViewController. La solution est de https://stackoverflow.com/a/25979945/47281