2009-08-26 14 views
1

J'ai un UINavigationController et un UITabBarController visibles en même temps. Les deux boutons de la barre d'onglets et la barre de navigation prennent leur texte du titre de la vue actuellement active.Titre manquant UITabBarController/UINavigationController

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    self.title = @"View Title"; 

Cependant, je veux le différent. En fait, j'aimerais que le titre du contrôleur de navigation reste le même quelle que soit la vue affichée.

Des idées?

Merci beaucoup.

Répondre

1

Vous devrez attribuer manuellement le nom du titre, comme vous le faites ci-dessus, dans les autres contrôleurs de vue. Si la hiérarchie de vos vues a plus de deux niveaux de profondeur, méfiez-vous car le bouton de retour aura l'air un peu étrange pour l'utilisateur (à moins que vous ne le surchargiez). En fait, si chaque point de vue a le même titre, qui peut sembler étrange à l'utilisateur, période ...

+0

Shaggy, merci pour le commentaire. Pour chaque UIViewController: viewDidLoad j'appelle: self.title = myObject.name; self.tabBarItem.title = @ ""; Cependant, bien que cela nomme tabBarItems correctement, mais le titre NavigationController est vide. Très étrange. Mon besoin est que les onglets soient des vues différentes sur le même objet. –

+0

À partir des documents disponibles sur http://developer.apple.com/IPhone/library/documentation/UIKit/Reference/UINavigationController_Class/Reference/Reference.html: «Si vous souhaitez afficher un titre différent de celui associé au contrôleur de vue , définissez plutôt la propriété title de l'élément de navigation du contrôleur de vue. " –

+0

Merci pour le conseil. Je l'ai essayé (... self.title = @ "Données de base"; self.navigationItem.title = dataObject.name; ...) dans viewDidLoad cependant cela ne semble pas fonctionner non plus. Il ne définit pas non plus le TitleView de NavigationItem. –

1
-(void)viewDidLoad{ 
[self setTitle:@"Custom Title goes here"]; 
} 

Cela a fonctionné pour moi.

3

Essayez cette

UITabBarItem *tItem = [self tabBarItem]; 
[tItem setTitle:@"Title for tabbar"]; 

il ne changera pas le titre de votre barre d'onglets lorsque vous définissez le titre de navigation comme

[self setTitle:@"Title for navBar"]; 

mais je trouve parfois il change à la fois tabBar et naviBar

puis J'insère le code de titrage de l'ensemble TabBar dans - (void) viewWillAppear à nouveau pour empêcher tel se passe

Merci

+0

Et si vous utilisez un contrôleur de navigation, faites [self.navigationController tabBarItem] – Brett

0

Selon Kwangbok Lee, j'ai testé, la meilleure réponse serait:

self.title = @"my settings";//changes both tabbars and navigationbars title 

self.tabBarItem.title = @"settings";//only changes tabbars title 
0

Ce que j'ai trouvé est ... en utilisant

self.tabBarController.title = @"navTitle"; 

modifie la navigation titre de la barre, tandis que

self.title = @"tabTitle"; 

modifie la barre d'onglets em titre.