objective c - bar - Storyboard avec NavigationController et TabController




uitabbarcontroller programmatically swift (2)

J'accepte la réponse de JMStone mais nous pourrions entrer dans la situation où nous devons placer le contrôleur de barre d'onglets à l'intérieur d'autre contrôleur particulièrement le contrôleur de vue de table.

Veuillez vous reporter au contrôleur de navigation Storyboard et au contrôleur de la barre d'onglets

et aussi le bon exemple de Matthjin: http://cl.ly/VQLa

Espère qu'il aide quelqu'un qui veut mettre le contrôleur de barre d'onglets à l'intérieur du contrôleur de vue de table et veut la bonne navigation.

Il semble que cela devrait être facile à comprendre, mais je n'ai pas eu de chance cet après-midi. J'ai jeté ensemble cette maquette de scénario rapide et simplifiée de mon problème.

Fondamentalement, je voudrais que les contrôleurs de vue de table ci-dessous soient également dans un contrôleur de barre d'onglets (en plus du contrôleur de navigation déjà présent). Les onglets passeraient entre les deux contrôleurs de vue de table.

À l'heure actuelle, le contrôleur de vue avec les boutons agit comme une sorte de menu. Chaque bouton mène à l'un des contrôleurs de vue de table. Idéalement, ce contrôleur de vue n'aurait pas la barre d'onglets visible, et serait seulement accessible à partir des boutons de retour sur les barres de navigation des contrôleurs de vue de table.

J'ai essayé quelques manières différentes d'incorporer dans un tabbarcontrollers mais aucun d'entre eux produit le résultat désiré:

-J'ai essayé de sélectionner les deux contrôleurs de vue table et d'intégrer ceux-ci dans un contrôleur de vue tabulation. La barre d'onglets n'apparaît pas dans le simulateur, et l'avertissement 'scène inaccessible' apparaît.

-J'ai essayé d'intégrer le contrôleur de navigation initial dans un contrôleur de tabulation. Cela crée une entrée de tabulation pour la première page "menu". Il provoque également des problèmes avec les segues push une fois que je connecte les vues de table à la tabview.

Je ferais bien de mettre en œuvre certaines options programmatiques en plus du storyboard, je viens de choisir le storyboard pour ce projet car c'est une présentation relativement simple des données.

Quelle est la bonne façon d'y parvenir? Merci!


Un contrôleur de barre d'onglets doit être le contrôleur de vue racine de la hiérarchie de vos vues. Il va à l'encontre des normes HIG et Apple pour mettre un contrôleur de barre d'onglets à l'intérieur de tout autre type de contrôleur de conteneur.

À partir des documents Apple:

Lors du déploiement d'une interface de barre d'onglets, vous devez installer cette vue en tant que racine de votre fenêtre. Contrairement à d'autres contrôleurs de vue, une interface de barre d'onglets ne doit jamais être installée en tant qu'enfant d'un autre contrôleur de vue.

Donc, la ligne de fond ici est que vous devez repenser votre conception. Une option consisterait à définir UITabBarController tant que vue racine de votre fenêtre, puis à UITableViewController chacun de vos UITableViewController dans un UINavigationController placé à l'intérieur de UITabBarController . De cette façon, vous obtenez toujours la barre de navigation, et restez dans les directives de conception d'Apple (vous n'obtiendrez pas ces avertissements, et Apple pourrait même lancer une exception de nos jours si vous essayez d'installer un UITabBarController comme autre chose que la racine vue de la fenêtre).





storyboard