J'ai une barre de navigation dans une vue, et je veux changer son titre d'élément de navigation par programmation.
Comment cela est-il fait?
Dans votre UIViewController
self.navigationItem.title = @"The title";
Ecrire le code ci-dessous dans viewDidLoad
ou peut-être mieux serait sous initWithNibName:
self.navigationItem.title = @"title";
Merci.
Swift 3 Version:
Si vous utilisez une barre de navigation sans controller de navigation, vous pouvez essayer ceci:
navigationBar.topItem?.title = "Your Title"
Espérer de l'aide.
Dans viewDidLoad
self.title = @"Title";
De la documentation d'Apple :
La façon la plus courante d'utiliser une barre de navigation est avec un controller de navigation. Vous pouvez également utiliser une barre de navigation en tant qu'object autonome dans votre application.
Donc, si vous avez un UINavigationController, tout ce que vous avez à 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 qui est créée par programmation dans un object de UIViewController, vous devez définir l'apparence initiale de la barre de navigation en créant les objects UINavigationItem appropriés et en les ajoutant à la stack d'objects de la barre de navigation
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 .
You can also use 👇🏻 [self.navigationController.navigationBar.topItem setTitle:@"Titlet"];
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";
note très importante: assurez-vous de faire les changements mentionnés ci-dessus dans la vue parente de la méthode viewDidLoad de Controller ou de la barre de navigation des parents dans le storyboard
Parfois vous pourriez avoir un cas où vous mettez à jour le titre et cela ne cause aucun effet, ceci peut être quand vous avez une vue personnalisée sur le topItem
donc vous voudrez peut-être le mettre à jour comme ceci: (self.navigationController?.navigationBar.topItem?.titleView as? UILabel)?.text = "My Happy New Title"