Ich habe eine Registerkartenleiste mit einer anderen Ansicht auf jeder Registerkarte. Jede Ansicht verfügt über eine UINavigationBar, deren Titel im Interface Builder festgelegt ist. Ich möchte den Titel basierend auf einer Klausel in der ViewDidLoad-Methode ändern, also wenn x {den Titel ändern}.
Ich habe self.title = @"title"
ausprobiert, aber dies ändert den Titel des Tab-Leistenelements selbst.
Wie wird das gemacht?
Ich habe den Titel programmgesteuert mit Code wie folgt eingestellt:
navBar.topItem.title = @"title";
dabei wird navBar als IBOutlet-UINavigationBar-Klasse definiert, die mit der Navigationsleiste im Interface-Builder verknüpft ist. Das hat in meiner App funktioniert; Ich habe jedoch keine Tab-Leiste verwendet.
Wenn es sich bei navBar.topItem um das Element der Registerkartenleiste handelt, sehe ich keine Möglichkeit, den in der Navigationsleiste angezeigten Titel zu ändern, ohne auch den Titel auf dem Element der Registerkartenleiste zu ändern, da es sich bei dem Element topBenster der Navigationsleiste um das Element BarBar handelt das gleiche Objekt.
Benutzen
self.navigationItem.title = @"the title";
die Einstellung navBar.topItem.title
funktioniert nicht unter allen Umständen.
Benutze das :
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];
oder
self.tableView.tableHeaderView = navBar; etc
Wenn es sich bei der Klasse um einen UIViewController-Typ handelt, können Sie den Titel wie in der viewDidLoad-Methode angegeben festlegen.
[self setTitle:@"My Title"];
IBOutlet
von UINavigationBar
erstellen
navigationBar.topItem.title = @"Title";
Hoffe das hilft.
In ViewDidLoad Ihres ViewController.m schreiben Sie einfach,
[email protected]"Hello World";
Hier ist die Ausgabe:
Ich habe folgendes verwendet:
self.navigationController.navigationBar.topItem.title = @"Title";
Ich musste ihn jedoch auch in einem Dispatch-Block aufrufen, da er den Titel nicht ändern würde, wenn er innerhalb von viewDidLoad aufgerufen wurde.
Beachten Sie, dass für den Titel AT ALL der Delegierte des Navigationscontrollers auf die Navigationsleiste selbst gesetzt werden MUSS, sonst wird der Titel NIE angezeigt!
Sie können den Titel auch einfach in ViewDidLoad unter Ihrem ViewController oder TableViewController festlegen
_title = @"Title";
oder
self.title = @"Title";
Ich habe diesen Weg in Swift 5 erreicht
override func viewDidLoad() {
super.viewDidLoad()
navigationItem.title = "Title"
}
Versuche dies,
self.navigationItem.title = @"Your title";