iPhone: Définition du titre de la barre de navigation

Salut à tous. Je suis encore assez nouveau dans le développement de l’iPhone et j’ai un peu de mal à trouver comment modifier le titre de ma barre de navigation. Sur une autre question sur ce site, quelqu’un a recommandé d’utiliser:

viewController.title = @"title text"; 

mais cela ne fonctionne pas pour moi … Dois-je append un UINavigationController pour accomplir cela? Ou peut-être juste un sharepoint vente de ma sous-classe UIViewController? Si cela vous aide, j’ai défini la barre de navigation dans IB et j’essaie de définir son titre dans ma sous-classe UIViewController. Ceci est une autre de ces choses simples qui me donne mal à la tête. Mettre self.title = @ “titre du texte”; dans viewDidLoad et initWithNibName ne fonctionnaient pas non plus. Quelqu’un sait-il ce qui se passe et comment y arriver?

Merci!

    Le contrôleur de vue doit être un enfant de certains UINavigationController pour que la propriété .title prenne effet. Si UINavigationBar est simplement une vue, vous devez appuyer sur un élément de navigation contenant le titre ou modifier le dernier élément de navigation:

     UINavigationItem* item = [[UINavigationItem alloc] initWithTitle:@"title text"]; ... [bar pushNavigationItem:item animated:YES]; [item release]; 

    ou

     bar.topItem.title = @"title text"; 

    Si vous le faites par code dans la méthode viewDidLoad de l’ UIViewController vous ne devez append que self.title = @"title text";

    quelque chose comme ça:

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

    vous pouvez également essayer self.navigationItem.title = @"title";

    Vérifiez également si votre navigationItem n’est pas null et si vous avez défini un arrière-plan personnalisé pour la vérification de la barre de navigation si le titre est défini sans lui.

    Il y a un problème avec l’utilisation de self.title = @"title";

    Si vous utilisez la barre de navigation avec la barre d’tabs, la ligne ci-dessus modifie également l’étiquette de l’élément de la barre d’tabs. Pour éviter cela, utilisez ce que suggère @testing

     self.navigationItem.title = @"MyTitle"; 

    Si vous voulez changer le titre de la barre de navigation (pas le titre du bouton de retour de la barre de navigation!), Ce code fonctionnera.

     self.navigationController.topViewController.title = @"info"; 

    Si vous voulez changer le titre d’une barre de navigation à l’intérieur d’un contrôleur TabBar, procédez comme suit:

     -(void)viewDidAppear:(BOOL)animated { self.navigationController.navigationBar.topItem.title = @"myTitle"; } 

    Dans mon application de navigation, je fais ceci:

     myViewController.navigationItem.title = @"MyTitle"; 

    J’avais un contrôleur de navigation intégré dans un TabbarController. Cela a fonctionné

     self.navigationItem.title=@"title"; 

    Par défaut, le contrôleur de navigation affiche le titre du ‘topitem’

    vous pouvez donc dans votre méthode viewdidload de votre application. Je l’ai testé et ça marche

     navController.navigationBar.topItem.title = @"Test"; 
     UINavigationItem* item = [[UINavigationItem alloc] initWithTitle:@"title text"]; ... [bar pushNavigationItem:item animated:YES]; [item release]; 

    Ce code a fonctionné.

    Si vous travaillez avec des storyboards, vous pouvez cliquer sur le contrôleur, passer à l’onglet des propriétés et définir le texte du titre.

    Je suppose que vous avez besoin d’un titre dynamic, c’est pourquoi vous ne le définissez pas dans IB.

    Et je suppose que votre object viewController est celui spécifié dans la NIB?

    Peut-être que vous essayez de la définir comme valeur fictive dans IB et que vous déboguez ensuite les méthodes pour voir quel contrôleur a la valeur fictive – en supposant qu’il apparaisse comme le titre …

    Depuis votre TableViewController.m:

    self.navigationController.navigationBar.topItem.title = @ “Blah blah Un titre incroyable”;

    Pour tous vos Swifters là-bas, cela a parfaitement fonctionné pour moi. C’est notamment l’un des moyens les plus courts d’accomplir la définition du titre:

     override public func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { if segue.identifier == "presentLineItem" { print("Setting Title") var vc = segue.destinationViewController as! LineItemsTableViewController vc.navigationItem.title = "Line Item" } } 

    Ce qui a fonctionné pour moi était self.titleLabel.text = @"New Title";