2010-11-10 5 views
0

Pour le moment, j'ai toutes mes vues spécifiées dans mon fichier mainWindow.xib dans le constructeur de l'interface. Par conséquent, lorsqu'un bouton de barre d'onglets est sollicité, il charge le bon contrôleur de navigation.iPhone, comment je surpasse un bouton de barre d'onglets pour faire autre que le contrôleur de navigation dans mon mainWindow.xib

Mais je veux faire quelque chose de différent dans le code quand ils tapent sur le bouton de la barre d'onglets pour un bouton.

Comment faire cela?

EDIT - Pas tout à fait une solution de travail ...

alt text

Répondre

1

Vous devez ajouter un délégué à votre tabBar et l'ont mise en œuvre de la méthode:

- (void)tabBarController:(UITabBarController *)tbc didSelectViewController:(UIViewController *)newSelection 

cette façon, vous serez capable de faire ce que vous voulez à la nouvelle vue sélectionnée Contrôleur et le tabBar lui-même.

+0

Ok, j'ai ajouté le délégué mais j'obtiens une erreur 'erreur: impossible de trouver la déclaration de protocole pour 'UITabBarControllerDelegete''. Aussi qu'est-ce que je mets dans didSelectViewController? Je vais devoir déterminer quel bouton a été pressé? – Jules

+0

UITabBarControllerDelegete doit être UITabBarControllerDelegate, non? – Romain

+0

Vous saurez quel onglet a été pressé en utilisant tbc.selectedIndex; – Romain

0

Vous pouvez utiliser les méthodes UITabBarControllerDelegate pour appeler du code personnalisé. Utilisez shouldSelectViewController et placez votre code personnalisé ici.

Aussi, je recommande de ne pas mettre toutes les vues dans le même fichier .xib. Les séparer améliore la performance car il n'a pas à charger tous les objets à la fois.

+0

Je ne suis pas sûr de l'utilisation de shouldSelectViewController? , voir ma capture d'écran. Il fait quelque chose, mais je ne suis pas sûr de ce que – Jules

Questions connexes