J'ai une barre de navigation dans une vue et je souhaite modifier le titre de l'élément de navigation par programmation.
Comment est-ce fait?
Dans votre UIViewController
self.navigationItem.title = @"The title";
Swift 3 Version:
Si vous utilisez une barre de navigation sans contrôleur de navigation, vous pouvez essayer ceci:
navigationBar.topItem?.title = "Your Title"
J'espère de l'aide.
Dans viewDidLoad
self.title = @"Title";
De Documentation Apple :
La manière la plus courante d'utiliser une barre de navigation est d'utiliser un contrôleur de navigation. Vous pouvez également utiliser une barre de navigation en tant qu'objet autonome dans votre application.
Donc, si vous avez un contrôleur UINavigation, tout ce que vous devez faire pour définir le titre de la barre de navigation (comme expliqué dans toutes les réponses précédentes)
self.navigationItem.title = @"title";
Mais si vous avez une barre de navigation autonome créée par programme dans un objet de UIViewController, vous devez définir l'apparence initiale de la barre de navigation en créant les objets UINavigationItem appropriés et en les ajoutant à la pile d'objets de la barre de navigation, i.e.
Exemple de code Objective-C pour les étapes mentionnées:
UINavigationBar* navbar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 64)];
/* Create navigation item object & set the title of navigation bar. */
UINavigationItem* navItem = [[UINavigationItem alloc] initWithTitle:self.shoppingItem.name];
/* Create left button item. */
UIBarButtonItem* cancelBtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(onTapCancel:)];
navItem.leftBarButtonItem = cancelBtn;
/* Create left button item. */
UIBarButtonItem* doneBtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(onTapDone:)];
navItem.rightBarButtonItem = doneBtn;
/* Assign the navigation item to the navigation bar.*/
[navbar setItems:@[navItem]];
/* add navigation bar to the root view.*/
[self.view addSubview:navbar];
Pour la version Swift de la barre de navigation autonome, consultez cette réponse .
Écrivez le code ci-dessous dans viewDidLoad
ou peut-être mieux serait sous initWithNibName:
self.navigationItem.title = @"title";
Merci.
Vous pouvez aussi utiliser ????????
[self.navigationController.navigationBar.topItem setTitle:@"Titlet"];
Dans votre viewDidLoad de votre UIViewController
self.navigationItem.title = "The title";//In Swift 4
fera l'affaire
vous pouvez également placer l'instruction ci-dessus dans le délégué de l'application pour effectuer une réplication globale.
Ce code n'a pas fonctionné pour moi
self.navigationItem.title = @"Title here";
Mais cela a fonctionné.
self.title = "Title Name"
remarque très importante: veillez à apporter les modifications mentionnées ci-dessus dans la vue parent de la méthode viewDidLoad du contrôleur ou dans la barre de navigation des parents dans le storyboard.
Utilisez-le dans la méthode ViewDidLoad
Format:
@property(nonatomic,readonly,retain) UINavigationItem *navigationItem; // Created on-demand so that a view controller may customize its navigation appearance.
Exemple:
self.navigationItem.title = @"Title here";
Parfois, vous pouvez obtenir un cas où vous mettez à jour le titre et ne cause aucun effet. Cela peut se produire lorsque vous avez une vue personnalisée sur le topItem
. Vous pouvez donc vouloir le mettre à jour comme ceci: (self.navigationController?.navigationBar.topItem?.titleView as? UILabel)?.text = "My Happy New Title"