2010-03-03 4 views
2

Je développe avec l'iPhone 3.1.3 SDK contre un iPhone 3GS avec le système d'exploitation 3.1.3. Mon application dispose d'une barre d'onglets avec sept éléments dont deux seulement contiennent quelque chose de significatif. Donc pour les items restants, j'ai décoché la case "Enabled" dans les attributs "Tab Bar Item" (première page, section "Bar Item").Comment désactiver tous les éléments de la barre d'onglets?

Cela fonctionne très bien pour les deux éléments de barre d'onglets visibles qui sont désactivés - ne peuvent pas cliquer dessus. Les trois autres, cependant, sont toujours activés dans la table "Plus" lorsque vous cliquez sur l'élément de la barre d'onglets "Plus" tout à fait à droite - j'obtiens leur vue de table (vide). Il me semble que c'est un bug - puisque ces éléments ne sont pas activés, ils ne devraient pas être cliquables, même dans la table "More". Cela se produit à la fois dans l'émulateur en mode débogage et sur mon iPhone en mode release.

Comment puis-je désactiver les éléments de la barre d'onglets dans la table "Plus"?

Répondre

6

Hmm. C'est presque certainement un bug. Je vous encourage à le déposer comme un; Je le ferai certainement. J'ai essayé de trouver un exemple d'application pour tester cela et j'ai confirmé le comportement que vous voyez. Il est intéressant, dans le protocole UITabBarControllerDelegate, il y a cette méthode:

- (BOOL)tabBarController:(UITabBarController *)tabBarController 
shouldSelectViewController:(UIViewController *)viewController 

Mais cette méthode isn t ’ appelé lorsque vous sélectionnez un contrôleur de vue de la “ Plus ” onglet élément de la barre. Pour l'instant, la seule façon dont je peux voir ce travail est si vous supprimez les contrôleurs de vue qui apparaîtraient dans le contrôleur “ More, rendant ainsi impossible de les sélectionner en raison de ne pas être présent.

+0

J'ai envoyé un bug chez Apple. –

0

Vous devez implémenter le protocole "UITabBarControllerDelegate" et le définir en tant que délégué à tabBarController. Il fonctionne très bien!

6

Je ne peux pas sembler obtenir tabBarController: shouldSelectViewController: pour déclencher, mais cela fonctionne:

for(UITabBarItem *item in self.tabBar.items) 
    item.enabled = false; 

Cela pourrait ne pas être ce que vous voulez, bien que, parce qu'il désactive même l'élément « Plus ».

Questions connexes