J'ai une application de barre d'onglets avec une vue différente sur chaque onglet. Chaque vue a un UINavigationBar avec un titre défini sur Interface Builder. Je veux changer le titre en fonction d'une clause de la méthode ViewDidLoad, donc si x {change le titre}.
J'ai essayé self.title = @"title"
, mais cela change le titre de l'élément de barre d'onglets lui-même.
Alors, comment cela se fait-il?
J'ai défini le titre par programme en utilisant du code comme ceci:
navBar.topItem.title = @"title";
où navBar est déclaré en tant que IBOutlet UINavigationBar lié à la barre de navigation dans le générateur d'interface. Cela a fonctionné dans mon application; Cependant, je n'utilisais pas de barre de tabulation.
Si navBar.topItem est l'élément de la barre d'onglets, je ne vois pas comment vous pouvez modifier le titre qui apparaît dans la barre de navigation sans modifier également le titre de l'élément de la barre d'onglets, car l'élément supérieur et les éléments de la barre d'onglet le même objet.
Utilisation
self.navigationItem.title = @"the title";
le réglage de navBar.topItem.title
ne fonctionnera pas dans toutes les circonstances.
Utilisez ceci :
CGRect navBarFrame = CGRectMake(0, 0, self.tableView.frame.size.width, 44.0);
UINavigationBar *navBar = [[UINavigationBar alloc] initWithFrame:navBarFrame];
UINavigationItem *navItem = [UINavigationItem alloc];
navItem.title = @"Your Title";
[navBar pushNavigationItem:navItem animated:false];
[self.view addSubView:navBar];
ou
self.tableView.tableHeaderView = navBar; etc
Si la classe est un type de UIViewController, vous pouvez définir le titre comme indiqué dans la méthode viewDidLoad.
[self setTitle:@"My Title"];
Créer IBOutlet
sur UINavigationBar
navigationBar.topItem.title = @"Title";
J'espère que cela t'aides.
Dans ViewDidLoad de votre ViewController.m, écrivez simplement,
self.navigationItem.title=@"Hello World";
Voici la sortie:
J'ai utilisé ce qui suit:
self.navigationController.navigationBar.topItem.title = @"Title";
Cependant, je devais aussi l'appeler dans un bloc de dispatch, car cela ne changerait pas le titre s'il était appelé dans le viewDidLoad sans ce dernier.
Notez que pour que le titre apparaisse AT, TOUS les délégués du contrôleur de navigation DOIVENT être réglés sur la barre de navigation, sinon le titre ne sera JAMAIS affiché!
Vous pouvez également simplement définir le titre dans ViewDidLoad sous ViewController ou TableViewController à l’aide de
_title = @"Title";
ou
self.title = @"Title";
J'ai réalisé cela dans Swift 5
override func viewDidLoad() {
super.viewDidLoad()
navigationItem.title = "Title"
}
Essaye ça,
self.navigationItem.title = @"Your title";