Ich habe eine Registerkartenanwendung mit einer anderen Ansicht auf jeder Registerkarte. Jede Ansicht verfügt über eine UINavigationBar mit dem im Interface Builder festgelegten Titel. Ich möchte den Titel basierend auf einer Klausel in der ViewDidLoad-Methode ändern, also wenn x {Titel ändern}.
Ich habe es versucht self.title = @"title"
, aber dies ändert den Titel des Registerkartenleistenelements selbst.
Wie wird das gemacht?
quelle
Verwenden
self.navigationItem.title = @"the title";
Diese Einstellung
navBar.topItem.title
funktioniert nicht unter allen Umständen.quelle
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
quelle
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"];
quelle
In ViewDidLoad Ihres ViewController.m schreiben Sie einfach,
self.navigationItem.title=@"Hello World";
Hier ist die Ausgabe:
quelle
Erstellen
IBOutlet
vonUINavigationBar
navigationBar.topItem.title = @"Title";
Hoffe das hilft.
quelle
Ich habe folgendes verwendet:
self.navigationController.navigationBar.topItem.title = @"Title";
Ich musste es jedoch auch in einem Versandblock aufrufen, da es den Titel nicht ändern würde, wenn es in viewDidLoad ohne ihn aufgerufen würde.
quelle
Beachten Sie, dass der Delegierte des Navigationscontrollers auf die Navigationsleiste selbst eingestellt sein muss, damit der Titel überhaupt angezeigt wird. Andernfalls wird der Titel NIEMALS angezeigt!
quelle
Sie können den Titel auch einfach in ViewDidLoad unter Ihrem ViewController oder TableViewController mit festlegen
_title = @"Title";
oder
self.title = @"Title";
quelle
Versuche dies,
self.navigationItem.title = @"Your title";
quelle
Dies habe ich in Swift 5 erreicht
override func viewDidLoad() { super.viewDidLoad() navigationItem.title = "Title" }
quelle