2009-10-06 9 views
0

Est-il possible d'avoir plus d'un UITabbarController dans une seule application iPhone?UITabbarComtroller multiple dans une application iPhone

Mon application a plus d'une section, chaque section doit avoir son propre UITabbarController pour naviguer dans cette section. Une nouvelle section doit être chargée si un certain type d'élément est sélectionné dans la section précédente. Deuxièmement, le bouton Précédent dans la barre de navigation devrait également faire ce qu'il fait, si l'utilisateur est sur le premier contrôleur de la deuxième section qui a été poussé s'il appuie sur le bouton il devrait revenir à la première section montrant son UITabbarcontroller.

Répondre

0

Bien sûr, utilisez un UINavigationController pour pousser et pop vos instances UITabbarController. Lorsque l'utilisateur sélectionne un élément d'un UITabbarController, placez le suivant dans votre UINavigationController, et lorsque vous appuyez sur le bouton Précédent, il ressortira et affichera votre UITabbarController précédent.

+0

J'ai créé un UITababrController dans la méthode applicationDidFinishLaunching des délégués de l'application et pour chacun de ses éléments d'onglet, j'ai associé un UINavigationController ayant chacun un UIViewController en tant que contrôleur racine. Lorsque le deuxième onglet est cliqué, je pousse un autre contrôleur de tabulation, mais il est visualisé sur le dernier contrôleur de tabulation. Je l'essaie à différents événements mais il ne fonctionne pas correctement. Où dois-je appuyer sur le contrôleur de tabulation? Si vous pouvez fournir un exemple de code, ce sera génial. :) –

+0

Je l'ai essayé de différentes façons: 1. Le deuxième élément de la barre d'onglets est associé à un contrôleur UITabbarcontroller. 2. Un contrôleur de navigation est associé à chaque élément de la barre d'onglets. Lorsque vous appuyez sur le deuxième bouton de la barre d'onglets, le contrôleur de navigation associé au second charge un contrôleur de vue et envoie un UITabbarController. Également essayé 1 ou 2 autres façons. Mais les barres de navigation sont ajoutées les unes sous les autres, de même que les contrôleurs de tabulation sont ajoutés les uns au-dessus des autres. –

0

Vous pourriez probablement faire fonctionner ceci dans votre scénario si vos contrôleurs d'onglets sont au même niveau, c'est-à-dire qu'ils ne sont pas imbriqués (je pense que leur imbrication finira par causer beaucoup de problèmes). Donc, si vous avez un niveau supérieur qui n'a pas de contrôleur de tabulation, mais lorsque l'utilisateur sélectionne quelque chose, le deuxième niveau a un contrôleur de tabulation, vous pouvez probablement faire ce travail.

Ce que je vous suggérerais est d'avoir un contrôleur de barre d'onglets de niveau supérieur comme vous le feriez dans une application de barre d'onglets normale. Donnez-lui une entrée de tabulation, votre contrôleur de navigation de premier niveau. Et CACHER la barre d'onglets au niveau de la racine. Lorsque l'utilisateur sélectionne un élément et que vous appuyez sur un contrôleur de vue, il suffit de le pousser comme d'habitude et, comme il s'affiche, configurez votre contrôleur de tabulation supérieur pour qu'il affiche les onglets souhaités et affichez-le. Lorsque l'utilisateur ouvre la vue, masquez à nouveau le contrôleur de tabulation et relâchez les onglets indésirables.

Ensuite, faites de même pour toutes vos autres sélections. Vous n'avez donc jamais qu'un seul contrôleur d'onglet, mais pour l'utilisateur, il semble que vous en ayez un par section.

Espérons que cela aide.

+0

Oui, mes contrôleurs de barre d'onglets étaient au même niveau, et j'affecte la barre d'onglets par défaut au contrôleur de navigation principal, puis j'appuie ou j'appuie sur d'autres barres d'onglets lorsque nécessaire depuis le contrôleur de navigation principal –

Questions connexes