Plusieurs niveaux de la Hiérarchie avec la manette de navigation
Je vais essayer d'obtenir de multiples niveaux de la hiérarchie de travail
avec les Contrôleurs de la Navigation. J'ai 3 niveaux de la hiérarchie et de
Je peux me déplacer à travers les niveaux de la hiérarchie, mais je peux
seulement descendre d'un niveau et pas de deux niveaux, retour vers le départ
vue.
Je commence par créer une manette de navigation pour Afficher les n ° 1 et poussez la prochaine
vue, Vue n ° 2, sur elle. Puis-je ajouter de la manette de navigation à l'
sous-vue de la fenêtre dans didSelectRowAtIndexPath. En cliquant sur
une ligne de tableau dans la Vue n ° 1 , me prend au prochain niveau hiérarchique Vue #2.
Cette prochaine hiérarchique de niveau de point de vue est aussi une vue de la table. C'est ici
Je pense que le problème se produit. J'ai créer une autre manette de navigation
et de pousser la Vue n ° 3 sur dans didSelectRowAtIndexPath dans la Vue
Contrôleur pour Afficher #2. En cliquant sur une ligne du tableau dans la Vue n ° 2 prend
moi pour voir #3. Mais lorsque j'utilise le bouton retour pour revenir à la Vue n ° 2,
- Je revenir à une vue vide, et non pas le point de Vue réelles #2.
-
Dois-je seulement besoin d'une manette de navigation pour gérer les 3 niveaux de
hiérarchique au lieu de deux manettes de navigation? -
Si #1 est oui, alors comment puis-je passer la manette de navigation à vue #2
contrôleur de sorte que je peux pousser Vue n ° 3 sur la manette de navigation? -
Ou dois-je besoin de pousser toutes les trois points de vue sur la manette de navigation
dans la Vue n ° 1? -
Ou...?
Merci d'avance,
Jim
- Je suis vraiment vous demandez-vous comment obtenir la même chose en ios5 avec enchaîne
Vous devez vous connecter pour publier un commentaire.
La
UIViewController
a été conçu pour travailler main dans la main avecUINavigationController
. Lorsque l'on pousse un nouveau point de vue, unUINavigationController
permettra d'injecter des références à lui-même et à unUINavigationItem
contenant des métadonnées relatives à la navigation (bouton de retour avec le titre de la vue derrière elle, etc...).En général, vous voulez initialiser votre
UINavigationController
avec Interface Builder en utilisant le "Nom de PLUME" champ pour indiquer la "racine-vue-contrôleur" (c'est à dire la première vue, apparaître, ce qui ne devrait pas avoir un bouton de retour). L'équivalent dans le code ressemble plus ou moins à ceci:Puis, quand vous avez besoin de pousser un nouveau-vue-contrôleur (probablement dans votre
didSelectRowAtIndexPath
délégué méthode dans votre rootController)Remarquez que vous n'avez pas à créer le
self.navigationController
de la propriété, il est déjà défini dansUIViewController
et sera injecté avec la bonne référence en fonction de l'état actuel de la navigation. Il fonctionne comme par magie!La DrillDownSave exemple de code à partir du site des Développeurs Apple:
https://developer.apple.com/library/ios/#samplecode/DrillDownSave/
fait exactement ce que je cherche avec trois niveaux de la hiérarchie de
points de vue à l'aide de la manette de navigation. Merci pour vos réponses.
Jim
En général tous de votre hiérarchie doit être contenue dans un seul UINavigationController. Je ne suis pas sûr si l'imbrication entre eux est même prise en charge.
Comment voulez-vous faire cela SI les vues sont des instances supplémentaires de la même contrôleur, qui est une véritable hiérarchie de rien de plus que des vues de table... le montre l'exemple de codage en dur des vues... mais ils font essentiellement la même chose. Mon OO fond, dit si je alloc/init une nouvelle instance d'un contrôleur, ne devrais-je pas être en mesure de pousser à cela, alors son état restauré sur les pop (bouton retour)? Cela ne semble pas fonctionner pour moi. Chaque instance du contrôleur (UITableViewController) a sa propre instance d'un tableau comme ses données...