UINavigationBar – Définir le titre par programme? iPhone SDK 4

J’ai une application de barre d’tabs avec une vue différente sur chaque onglet. Chaque vue possède un UINavigationBar avec un jeu de titres sur Interface Builder. Je veux changer le titre en fonction d’une clause de la méthode ViewDidLoad, donc si x {change le titre}.

J’ai essayé self.title = @"title" , que j’ai lu ici sur Stackoverflow – mais cela change le titre de l’élément de la barre d’tabs lui-même.

Alors, comment ça se passe?

J’ai défini le titre par programmation en utilisant quelque chose comme:

 navBar.topItem.title = @"title"; 

où navBar est déclaré comme un IBOutlet UINavigationBar lié à la barre de navigation dans le générateur d’interface. Cela a fonctionné dans mon application; Cependant, je n’utilisais pas de barre d’tabs.

Si navBar.topItem est l’élément de la barre d’tabs, je ne vois aucun moyen de modifier le titre qui apparaît dans la barre de navigation sans modifier également le titre de l’élément de la barre d’tabs. le même object

Utilisation

 self.navigationItem.title = @"the title"; 

comme le paramètre navBar.topItem.title ne fonctionnera pas dans toutes les circonstances.

Utilisez ceci :

  CGRect navBarFrame = CGRectMake(0, 0, self.tableView.frame.size.width, 44.0); UINavigationBar *navBar = [[UINavigationBar alloc] initWithFrame:navBarFrame]; UINavigationItem *navItem = [UINavigationItem alloc]; navItem.title = @"Your Title"; [navBar pushNavigationItem:navItem animated:false]; [self.view addSubView:navBar]; 

ou

 self.tableView.tableHeaderView = navBar; etc 

Si la classe est un type de UIViewController, vous pouvez définir le titre comme indiqué dans la méthode viewDidLoad.

  [self setTitle:@"My Title"]; 

Créer IBOutlet de UINavigationBar

 navigationBar.topItem.title = @"Title"; 

J’espère que cela t’aides.

Dans ViewDidLoad de votre ViewController.m, écrivez simplement,

 self.navigationItem.title=@"Hello World"; 

Voici la sortie:

entrer la description de l'image ici

J’ai utilisé ce qui suit:

 self.navigationController.navigationBar.topItem.title = @"Title"; 

Cependant, je devais aussi l’appeler dans un bloc de répartition car cela ne changerait pas le titre lorsqu’il était appelé dans viewDidLoad sans ce dernier.

Notez que pour que le titre apparaisse, TOUT le délégué du contrôleur de navigation DOIT être défini sur la barre de navigation ou le titre ne s’affichera JAMAIS!

Vous pouvez aussi simplement définir le titre dans ViewDidLoad sous votre ViewController ou TableViewController en utilisant

 _title = @"Title"; 

ou

 self.title = @"Title"; 

Essaye ça,

 self.navigationItem.title = @"Your title";