2017-10-05 16 views
0

J'utilise un contrôleur de barre d'onglets pour passer de VC1 à VC2. Ce faisant, VC1 reste en mémoire. Je gère les données avec VC2 et quand je reviens à VC1 (avec contrôleur de barre d'onglets), je recharge VC1 avec une fonction en viewWillAppear cela fonctionne très bien, mais la version précédente de VC1 est toujours visible lors de l'animation rechargée.Comment ignorer une vue en la quittant avec le contrôleur de barre d'onglets

Je dois rejeter le VC1 (de la mémoire) avant le début du processus d'animation ou de rechargement.
J'ai essayé, dans viewWillAppear, et viewDidDisappear de VC1 ces commandes sans succès. Je pense que la meilleure approche consiste à ignorer VC1 lors du passage à VC2, mais n'a pas encore trouvé le chemin.

Merci pour votre aide.

+0

Il est évident que les vues de votre VC1 doit être "rafraîchi" après le changement de modèle de VC2. Serait plus utile si vous pouviez partager ce type de vues que vous avez dans VC1. –

Répondre

0

Ma suggestion, utilisez NotificationCenter pour ajouter un observateur dans VC1 et déclencher à partir de VC2 si un événement se produit.

Ajouter un observateur.

NotificationCenter.default.addObserver(forName: Notification.Name(rawValue: "updateVC1"), 
             object:nil, queue:nil) { 
             notification in 

             // do something 
} 

Trigger l'observateur de VC2

NotificationCenter.default.post(name: Notification.Name(rawValue: "updateVC1"), object: nil)