Salut à tous. Je suis encore relativement novice dans le développement d'iPhone et j'ai un peu de mal à comprendre comment changer 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 ajouter un contrôleur UINavigation pour accomplir cela? Ou peut-être juste un point de vente de ma sous-classe UIViewController? Si cela peut aider, j'ai défini la barre de navigation dans IB et j'essaie de définir son titre dans ma sous-classe UIViewController. C'est une autre de ces choses simples qui me donne mal à la tête. Putting self.title = @ "titre du texte"; dans viewDidLoad
et initWithNibName
ne fonctionnait pas non plus. Quelqu'un sait-il ce qui se passe et comment le faire correctement?
Merci!
Le contrôleur de vue doit être un enfant de UINavigationController pour le .title
propriété à prendre effet. Si la barre UINavigation est simplement une vue, vous devez pousser 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 faites tout cela par code dans la méthode viewDidLoad
de la UIViewController
, vous ne devriez ajouter que self.title = @"title text";
quelque chose comme ça:
- (void)viewDidLoad {
[super viewDidLoad];
self.title = @"title";
}
vous pouvez aussi essayer self.navigationItem.title = @"title";
vérifiez également si votre élément de navigation n'est pas null et si vous avez défini un arrière-plan personnalisé pour la barre de navigation, vérifiez si le titre est défini sans.
Il y a un problème avec l'utilisation de self.title = @"title";
Si vous utilisez la barre de navigation avec la barre d'onglets, la ligne ci-dessus modifie également le libellé de l'élément de la barre d'onglets. Pour éviter cela, utilisez ce que @testing a suggéré
self.navigationItem.title = @"MyTitle";
Si vous voulez changer le titre de la barre de navigation (pas le titre du bouton Précédent de la barre de navigation!), Ce code fonctionnera.
self.navigationController.topViewController.title = @"info";
Si vous souhaitez modifier le titre d'un navBar dans un contrôleur tabBar, procédez comme suit:
-(void)viewDidAppear:(BOOL)animated {
self.navigationController.navigationBar.topItem.title = @"myTitle";
}
Dans mon application basée sur la navigation, je fais ceci:
myViewController.navigationItem.title = @"MyTitle";
Par défaut, le contrôleur de navigation affiche le titre du 'topitem'
donc, dans votre méthode viewdidload de votre appdelegate, vous pouvez. Je l'ai testé et ça marche
navController.navigationBar.topItem.title = @"Test";
J'avais un contrôleur de navigation intégré dans un TabbarController. Cela a fonctionné
self.navigationItem.title=@"title";
Si vous travaillez avec Storyboards, vous pouvez cliquer sur le contrôleur, basculer vers l’onglet Propriétés et y définir le texte du titre.
UINavigationItem* item = [[UINavigationItem alloc] initWithTitle:@"title text"];
...
[bar pushNavigationItem:item animated:YES];
[item release];
Ce code a fonctionné.
Je suppose que vous avez besoin d’un titre dynamique, c’est pourquoi vous ne le définissez pas dans IB.
Et je suppose que votre objet viewController est celui spécifié dans la NIB?
Peut-être essayer de lui attribuer une valeur factice dans IB, puis de déboguer les méthodes pour voir quel contrôleur a la valeur factice - en supposant qu'elle apparaisse comme le titre ...
À partir de votre TableViewController.m:
self.navigationController.navigationBar.topItem.title = @ "Blah blah Un titre incroyable";
Pour tous vos membres, cela a parfaitement fonctionné pour moi. C'est notamment l'un des moyens les plus courts pour définir le 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";