2010-06-21 5 views
0

J'ai un UINavigationController avec 3 niveaux de hiérarchie: Menu-> Sous-menu-> Détails. Menu et sous-menu sont UITableViews alors que Details est un contrôleur de vue personnalisé.UINavigationController va directement au contrôleur 'suivant'?

Je souhaite ajouter les boutons «Précédent» et «Suivant» dans la vue Détails qui me permettront d'accéder directement aux éléments précédents et suivants du sous-menu actuel.

Par exemple, disons que j'ai:

|Menu |M1 Submenu |SM2 Details 
-------------------------------- 
M1 -> |SM1  |D1 
M2  |SM2 -> |D2 
M3  |SM3  |D3 // Let's say we are here now 
        |D4 
// ... etc ... 

// The arrows represent items the user selected 

Alors disons que l'application affiche actuellement le contrôleur de vue Détails D3. Cela signifie que nous sommes actuellement dans M1-> SM2-> D3. Maintenant, en D3, si l'utilisateur appuie sur un bouton «suivant», il devrait afficher D4. De même, s'il appuie sur le bouton «précédent», D2 s'affiche. Par conséquent, les boutons «Suivant» et «Précédent» font essentiellement la même chose que d'appuyer sur le bouton de retour du contrôleur de navigation, puis de sélectionner l'élément suivant dans la liste.

Quelle serait la meilleure façon de l'implémenter? Dois-je revenir au sous-menu et appuyer sur un autre contrôleur de détails? Dois-je appeler le contrôleur du sous-menu directement à partir du contrôleur de vue détaillée (si oui, comment)?

Merci.

Répondre

0

Il n'est vraiment pas nécessaire d'appeler le contrôleur parent. Voici ce que vous pouvez faire:

En supposant que vous conserviez un tableau d'éléments «détail» dans le sous-menu Contrôleur, au lieu d'initialiser le contrôleur de détail avec l'élément sélectionné, initialisez-le avec le tableau et l'index sélectionné. Puis, lorsque vous appuyez sur les boutons précédent/suivant, changez l'index sélectionné et mettez à jour l'affichage en conséquence.

+0

Si je comprends bien, vous dites que j'ai une référence au tableau de détails de sous-menu dans mon contrôleur de détails? Si non, comment puis-je dire au contrôleur de sous-menu de me passer l'élément de tableau suivant? Peut-être que j'ai raté quelque chose. – nebs

+0

c'est correct, gardez une référence au tableau de détails dans le contrôleur de détails. Vous pouvez également modifier l'index sélectionné sur le contrôleur de sous-menu dans les détails de viewWillDisappear du contrôleur. –

Questions connexes