2017-06-11 1 views
0

Je suis nouveau sur Xcode et j'ai du mal à comprendre comment fonctionne UITabbar.Comment changer de vue en cliquant sur un UITabBar via segue?

enter image description here

Essentiellement tant que je reste dans le premier onglet « Bien-être », je devrais être en mesure de voir trois éléments de menu. Chaque élément de menu doit afficher une vue différente.

Je suis un peu perdu comment je peux charger une vue différente en fonction de la sélection de l'élément de menu. Théoriquement, je pourrais créer juste deux autres vues comme "Wellbeing" avec une barre de menu similaire. Comme je clique autour dans la barre de menu je détournerais la vue à ces vues.

Mais je ne suis pas sûr de savoir comment y parvenir via segue. Un conseil serait très apprécié.

Merci

+0

Pourquoi ne pas utiliser containerViews dans ce point de vue et définir celui que vous voulez afficher en premier lorsque la vue apparaît comme 'view.bringSubview (toFront: preferredFirstView) 'et a envoyé le reste à l'arrière comme' view.sendSubview (toBack: otherViews) 'puis lorsque ces boutons sont sélectionnés, ils sont inversés, mais ils sont nécessaires. – CarpenterBlood

+0

Idée intéressante. Et je pourrais toujours concevoir chaque vue séparément dans IB, et les charger dans la vue visible de cette façon ... Ne pense pas que c'est la façon officielle d'y parvenir, mais toujours un bon moyen. Pouvez-vous me montrer du code comme réponse s'il vous plait? – Houman

+0

ajouté réponse et oui chaque containerView a un ViewController intégré pour lequel vous faites une toute nouvelle classe ViewController. Personnellement, je préfère celui-ci un contrôleur de barre d'onglet parce que j'aime définir les couleurs de tous mes boutons en fonction du contenu de la vue et il revient toujours nul avec tabbarController – CarpenterBlood

Répondre

0

Ajouter ContainerViews à la vue de l'onglet individuel. Créez @IBOutlets pour chaque conteneur. Ensuite, définissez votre vue préférée au chargement à visible comme ceci. Ensuite, ajoutez vos méthodes d'action de bouton et inversez toutes vos vues, mais il se peut qu'elles soient similaires.

@IBAction func otherViewAction(_ sender: Any) { 
    view.bringSubview(toFront: otherView) 
    view.sendSubview(toBack: preferredView) 
    //do anything else you may need to do when the view is switched 
} 

enter image description here

C'est celui que je travaille sur

+0

Je suis désolé, je ne comprends pas comment cela devrait fonctionner.Je peux ajoutez l'IBOutlet de la vue du conteneur au viewcontroller. Mais comment charger les vues? – Houman

+0

Les vues se chargent automatiquement lorsque ViewController et les conteneurs imbriqués sont chargés. La classe ViewController avec les conteneurs imbriqués est l'endroit où vous créez les conteneurs @IBOutlets et dans cette classe, vous affichez/masquez chaque vue en fonction des préférences. Vous pouvez encore le personnaliser en créant des classes ViewController personnalisées pour chaque ViewController intégré – CarpenterBlood