2017-03-27 5 views
5

J'ai un contrôleur de barre d'onglet, puis un contrôleur de navigation, puis un contrôleur de première vue. Ce contrôleur de vue possède une barre d'onglets comme prévu. Cependant, quand je vois de cette vue, je perds la barre d'onglets. Je veux qu'il conserve sa position sur les autres VC issus de cette première vue. Voici mon IB:Garder la barre d'onglets sur Vue après la lecture?

enter image description here

Je veux la barre d'onglets apparaître également sur le VC gauche après son chargement par Segue du droit VC,

Comment est-ce réalisé comme actuellement il disparait peu importe de moi en réglant la section onglet au bas de la VC comme indiqué ci-dessus.

Répondre

5

Si vous effectuez une section modale à partir d'une vue qui est une vue de la barre d'onglets, elle supprime la barre d'onglets de la vue modale que vous présentez.

Deuxièmement, lorsque vous lancez une session, vous créez une nouvelle instance du contrôleur de vue. Donc je devine que vous êtes en train de passer de view1 à view2 et que vous perdez la barre d'onglets, alors vous revenez voir view1. À ce stade, vous avez créé view1, view2 et une deuxième copie de view1 qui n'a pas de barre d'onglets.

Je suggérerais une de deux choses.

1.) Si vous souhaitez conserver les onglets en bas lorsque vous passez de view1 à view2, cliquez sur view1. En haut de l'écran, sélectionnez Editor/Embed In/Navigation Controller. Cela va intégrer votre view1 dans un contrôleur de navigation. Ensuite, si vous changez votre segue de Modal à Push, vos barres d'onglets resteront en bas. La barre de navigation en haut permet également de revenir facilement à la vue 2 pour voir la bonne façon (en faisant apparaître la vue) plutôt que de créer une nouvelle section. Si vous n'aimez pas la barre de navigation, vous pouvez remplacer la propriété "Top Bar" par "None" dans l'inspecteur. Vous devrez ensuite créer un autre moyen dans view2 pour revenir à view1. (EN RACCOURCISSANT LE CONTRÔLEUR, PAS EN SEGUINGANT)

2) Si vous ne voulez pas configurer un contrôleur de navigation, vous aurez un peu plus de mal à garder la barre d'onglets en bas du contrôleur view2. En fait, je ne suis pas sûr que vous puissiez le faire du tout avec un segue modal, vous devrez probablement écrire un certain type de segue personnalisée. Quoi qu'il en soit, si vous voulez revenir à view1 et accéder au bon contrôleur (pas une nouvelle version sans les onglets), vous devez attacher une action à n'importe quel bouton que vous utilisez pour segue et utiliser le code suivant (j'ai également joint le code pour le contrôleur de navigation enchaînements push, dans le cas où vous créez un contrôleur de navigation et de se débarrasser de la barre de navigation)

pour Modal Segue:.

[self dismissModalViewControllerAnimated:YES]; 

pour pousser Segue:

[self.navigationController popViewControllerAnimated:YES]; 

Votre meilleur pari est d'utiliser la navigation méthode de contrôleur, comme vous êtes assuré de garder vos onglets. Vous pouvez ensuite utiliser la barre de navigation pour revenir (en toute simplicité, aucun code requis) ou vous pouvez vous en débarrasser et utiliser un bouton et le code ci-dessus.

Bonne chance! S'il vous plaît Cliquez sur la coche verte si cela aide