2017-10-05 16 views
0

J'ai un UITabBarController avec 3 onglets qui ont respectivement VC1, VC2 et VC3 dans chacun des onglets. Dans VC1 j'ai un bouton qui une fois pressé je veux REMPLACER le VC1 avec VC4. Comment puis-je obtenir le UITabBarController et mettre à jour le tableau VC pour qu'il soit maintenant VC4, VC2, VC3. Puis-je faire cela à l'intérieur de VC1 ou dois-je poster une notification que l'appdelegate gère?Swift Change ViewController de UITabBarController actuel

+1

Copie possible de [Régler les contrôleurs de vue de UITabBarController dans Swift] (https://stackoverflow.com/questions/31720420/set-view-controllers-of-uitabbarcontroller-in-swift) – the4kman

+0

Étroitement lié. Était en mesure de le faire avec: si laissez tabBarController = self.tabBarController { laissez d'abord = self.storyboard? .instantiateViewController (withIdentifier: "ChatVC") comme! ChatViewController tabBarController.viewControllers! [0] = première } mais qui change l'onglet titre/icône aussi bien et pas ce que je vraiment wented – justdan0227

Répondre

1

Oui, vous pouvez le faire. Vous pouvez utiliser UITabBarController la méthode setViewControllers:animated, qui accepte le tableau de contrôleurs de vue. Les onglets apparaissent dans le même ordre que le tableau que vous lui passez (de gauche à droite). Il suffit donc de réorganiser le tableau et d'appeler le setViewControllers:animated avec ce tableau. Gardez à l'esprit que le tabBarItem, son image et son titre sont définis par contrôleur de vue. Ainsi, si vous réorganisez les contrôleurs de vue, les éléments de la barre d'onglets seront également réorganisés.

+0

Merci .. J'ai essayé cela, et elle « fonctionne », mais je veux maintenez l'onglet pour dire à la maison et une fois pressé retourne à un VC qui montre les 6 boutons originaux sur la page de ce VC. Vous ne savez pas si je ne respecte pas les consignes de conception d'utilisateur Apple en procédant ainsi. Alors montrez "Home VC" avec 6 boutons. Appuyez sur le bouton un. Remplacez Home VC avec le VC de Button1. Lorsque vous appuyez à nouveau sur l'onglet Accueil, le Home VC s'affiche à nouveau avec les 6 boutons. Le problème est que lorsque le VC de Button1 est montré que l'onglet est mis à jour et je ne reçois pas de notification lorsque l'on appuie à nouveau sur l'onglet pour revenir à la Home VC – justdan0227