2011-03-25 2 views
5

J'ai 9 onglets dans ma barre d'onglets ... Et je veux changer le titre de chacun d'eux depuis un contrôleur de vue. et je l'ai fait comme suit:Modifier le titre de UITabBarItem dynamiquement

for (int i=0; i(less than)[appDelegate.tabBarController.viewControllers count]; i++) { 
    UIViewController *uv=[appDelegate.tabBarController.viewControllers objectAtIndex:i]; 
    [email protected]"test"; 
} 

Il change le titre pour tous les onglets visibles instantanément mais ne fonctionne pas pour les onglets en plus ...

Cependant, si je clique sur le bouton Modifier dans plus nav CnTRL il montre nom changé. Aussi ... très étrange ... Si je sélectionne un onglet en plus puis tous les onglets reflète nouveau nom
pourquoi est-il si ???

+0

merci Matteo ... aucune idée à ce sujet ??? – saurabh

Répondre

1

La modification du titre d'un UIBarItem (superclasse de UITabBarItem) doit être effectuée avant que l'élément ne soit ajouté à une barre par document Apple. On dirait que iOS met en cache les titres une fois que les éléments sont ajoutés à la barre afin que vous obteniez un comportement imprévisible.

De la UIBarItem Référence de la classe:

titre
Le titre affiché sur l'élément.

@property (nonatomic, copie) NSString * Titre

Discussion
Vous devez définir cette propriété avant d'ajouter l'article à un bar. La valeur par défaut est zéro.

+0

okyeee den whts d solution ???? dans le cas idéal il ne devrait pas me permettre de changer le nom et si c'est den il devrait refléter les changements correctement – saurabh

+0

Honnêtement, pas sûr si vous pouvez le faire. J'essayerais de créer le UITabBarItems par programmation, vous pouvez remplacer la méthode 'tabBarItem' de chaque contrôleur de vue pour appeler' [super tabBarItem] ', puis définir le titre à ce que vous voulez qu'il soit à la fois. Je ne suis pas sûr que cela résolve complètement le problème, car vous ne pouvez pas modifier le tabBar géré par un UITabBarController en le définissant plus tard. Qu'est-ce que vous essayez exactement de faire (par exemple, pourquoi avez-vous besoin de changer dynamiquement les titres de tabBarItem)? – XJones

+0

Je veux changer de langue ..... aussi comme je l'ai dit dans mon qst je peux changer de nom mais les problèmes sont pour les onglets il change instantanément mais les onglets dans plus de changements de contrôleur nav quand je sélectionne un onglet dans la liste aussi les changements sont reflété instantanément dans la vue de configuration – saurabh

Questions connexes