wake-up-neo.net

UINavigationBar - Titel programmgesteuert setzen?

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?

75
AveragePro

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.

195
Greg

Benutzen

self.navigationItem.title = @"the title";

die Einstellung navBar.topItem.title funktioniert nicht unter allen Umständen.

69
ChrisP

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
25
Muzammil

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"];
11
Augustine P A

IBOutlet von UINavigationBar erstellen

navigationBar.topItem.title = @"Title";

Hoffe das hilft.

6
Shyam

In ViewDidLoad Ihres ViewController.m schreiben Sie einfach,

[email protected]"Hello World";

Hier ist die Ausgabe:

enter image description here

5
iAnkit

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.

2
Tod Cunningham

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!

2
Mike

Sie können den Titel auch einfach in ViewDidLoad unter Ihrem ViewController oder TableViewController festlegen

_title = @"Title";

oder

self.title = @"Title";
1
donmiller

Ich habe diesen Weg in Swift 5 erreicht

override func viewDidLoad() {
    super.viewDidLoad()
    navigationItem.title = "Title"
}
0
IMRAN RASHEED

Versuche dies,

self.navigationItem.title = @"Your title";
0
Kiran eldho