2010-01-06 6 views
4

Lorsque vous avez plus de 5 contrôleurs de vue dans votre TabBarController, une vue "Plus" est automatiquement configurée pour vous. Est-il possible de changer la couleur de navigationBar dans cette vue pour correspondre à la couleur que j'utilise, au lieu du bleu par défaut?Modifier la couleur de NavigationBar pour l'onglet "Plus"?

+0

Avez-vous déjà réussi à tirer les autres éléments avec une couleur différente alors? API privée? Puisque vous ne définissez qu'une image de toutes les couleurs à partir de laquelle deux états d'image sont générés automatiquement par 'UITabBarItem', vous obtenez une image blanche et bleue. – Joost

+0

Ow ce n'est pas ce que vous voulez vraiment, ignorez simplement mon commentaire. – Joost

Répondre

10

OK. Je n'aurais pas dû faire confiance aux docs complètement. J'ai trouvé la réponse quelques minutes plus tard en l'essayant. La documentation répertorie moreNavigationController est une propriété en lecture seule. Mais cela fonctionne bien pour moi:

tabBarController.moreNavigationController.navigationBar.barStyle = UIBarStyleBlackOpaque; 

ou

tabBarController.moreNavigationController.navigationBar.tintColor = [UIColor redColor]; 

Au cas où quelqu'un se demandait.

+3

Le fait que la propriété soit en lecture seule signifie que vous ne pouvez pas lui attribuer, pas que vous ne pouvez pas modifier les propriétés de l'objet auquel elle fait référence. Vous ne pouvez pas faire 'tabBarController.moreNavigationController = quelque chose;'. – pgb

+0

J'ai écrit ce blog depuis longtemps pour tous ceux qui sont intéressés: http://runmad.com/blog/2010/01/coloring-fun-with-morenavigationcontroller-and-it/ – runmad

1

Je sais seulement que cela fonctionne:

yournavigationController.navigationBar.tintColor = [UIColor blueColor]; 

Mais je ne sais pas si cela fonctionne therfore.

0

mettre

tabBarController.moreNavigationController.navigationBar.tintColor = [UIColor colorWithRed:64/256.0 green:191/256.0 blue:23/256.0 alpha:1.0]; 

dans mon principal délégué app a travaillé

1

Dans votre application UIApplicationDelegate mettre ceci:

self.tabBarController.moreNavigationController.navigationBar.tintColor = [UIColor blackcolor]; 
+1

Il n'y a pas besoin de répondre à une question déjà posée et fil accepté avec exactement le même code ... – runmad

Questions connexes