Mes deux cents 🙂 Cela fonctionne, même si le vewcontroller fait partie d'un toolbarcontroller. Puis le toolbaritem du titre est mis à jour en tant que bien.
La façon la plus courante d'utiliser une barre de navigation avec la navigation
le contrôleur. Vous pouvez également utiliser une barre de navigation comme un objet 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 les précédentes réponses)
self.navigationItem.title =@"title";
Mais Si vous avez autonome de la barre de navigation qui est créé par programme à l'intérieur d'un objet de UIViewController, Vous devez définir l'apparence initiale de la barre de navigation, en créant les UINavigationItem les objets et les ajouter à la barre de navigation de l'objet de la pile c'est à dire
Créer une instance de la barre de navigation (UINavigationBar)
Créer une instance de la barre de navigation de l'élément (UINavigationItem) qui gère les boutons et les points de vue à être affiché dans une UINavigationBar objet. Notez que vous définissez le titre lors de cette étape.
(Étape facultative) Ajouter à droite/à gauche des boutons (cas de UIBarButtonItem) de la barre de navigation de l'élément.
Échantillon 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 Swift version de l'application autonome de la barre de navigation, découvrez cette réponse.
@property(nonatomic,readonly,retain)UINavigationItem*navigationItem;//Created on-demand so that a view controller may customize its navigation appearance.
remarque très importante : assurez-vous de faire les modifications mentionnées ci-dessus dans la vue parent du Contrôleur de la méthode viewDidLoad, ou les parents de la barre de navigation dans le storyboard
Parfois, vous pourriez obtenir un cas où vous êtes mise à jour le titre et il n'est pas causant aucun effet, cela peut être quand vous avez un affichage personnalisé sur le topItem, par conséquent, vous pourriez voulez le mettre à jour comme ceci: (self.navigationController?.navigationBar.topItem?.titleView as? UILabel)?.text = "My Happy New Title"
Dans votre UIViewController
Swift 3 Version:
Si vous utilisez une barre de navigation sans manette de navigation, alors vous pouvez essayer ceci:
De l'espoir pour aider.
Dans le viewDidLoad
De La Documentation D'Apple:
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 les précédentes réponses)
Mais Si vous avez autonome de la barre de navigation qui est créé par programme à l'intérieur d'un objet de UIViewController, Vous devez définir l'apparence initiale de la barre de navigation, en créant les UINavigationItem les objets et les ajouter à la barre de navigation de l'objet de la pile c'est à dire
Échantillon de Code Objective-C pour les étapes mentionnées:
Pour Swift version de l'application autonome de la barre de navigation, découvrez cette réponse.
Écrire le code ci-dessous dans
viewDidLoad
ou peut-être mieux serait sousinitWithNibName:
Grâce.
Vous pouvez également utiliser
Ce code ne fonctionne pas pour moi
Mais cela a fonctionné.
Dans votre UIViewController de viewDidLoad
fera l'affaire
vous pouvez également placer la déclaration ci-dessus dans l'app délégué à reproduire à l'échelle mondiale.
L'utiliser dans la méthode ViewDidLoad
Format :
Exemple :
remarque très importante : assurez-vous de faire les modifications mentionnées ci-dessus dans la vue parent du Contrôleur de la méthode viewDidLoad, ou les parents de la barre de navigation dans le storyboard
Parfois, vous pourriez obtenir un cas où vous êtes mise à jour le titre et il n'est pas causant aucun effet, cela peut être quand vous avez un affichage personnalisé sur le
topItem
, par conséquent, vous pourriez voulez le mettre à jour comme ceci:(self.navigationController?.navigationBar.topItem?.titleView as? UILabel)?.text = "My Happy New Title"