Ich habe eine Navigationsleiste in einer Ansicht und möchte den Titel des Navigationselements programmgesteuert ändern.
Wie wird das gemacht?
Antworten:
Swift 3 Version:
Wenn Sie eine Navigationsleiste ohne Navigationscontroller verwenden, können Sie Folgendes versuchen:
navigationBar.topItem?.title = "Your Title"
Hoffe auf Hilfe.
In viewDidLoad
self.title = @"Title";
Aus der Apple-Dokumentation :
Die häufigste Art, eine Navigationsleiste zu verwenden, ist die Verwendung eines Navigationscontrollers. Sie können auch eine Navigationsleiste als eigenständiges Objekt in Ihrer App verwenden.
Wenn Sie also einen UINavigationController haben, müssen Sie nur den Titel der Navigationsleiste festlegen (wie in allen vorherigen Antworten erläutert).
self.navigationItem.title = @"title";
Wenn Sie jedoch eine eigenständige Navigationsleiste haben, die programmgesteuert in einem Objekt von UIViewController erstellt wird, müssen Sie das ursprüngliche Erscheinungsbild der Navigationsleiste festlegen, indem Sie die entsprechenden UINavigationItem-Objekte erstellen und sie dem Objektstapel der Navigationsleiste hinzufügen, d. H.
Beispiel eines Objective-C-Codes für die genannten Schritte:
UINavigationBar* navbar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 64)];
/* Create navigation item object & set the title of navigation bar. */
UINavigationItem* navItem = [[UINavigationItem alloc] initWithTitle:self.shoppingItem.name];
/* Create left button item. */
UIBarButtonItem* cancelBtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(onTapCancel:)];
navItem.leftBarButtonItem = cancelBtn;
/* Create left button item. */
UIBarButtonItem* doneBtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(onTapDone:)];
navItem.rightBarButtonItem = doneBtn;
/* Assign the navigation item to the navigation bar.*/
[navbar setItems:@[navItem]];
/* add navigation bar to the root view.*/
[self.view addSubview:navbar];
Schauen Sie sich diese Antwort für die Swift-Version der eigenständigen Navigationsleiste an .
Schreiben Sie den folgenden Code in viewDidLoad
oder möglicherweise besser unterinitWithNibName:
self.navigationItem.title = @"title";
Vielen Dank.
Sie können auch 👇🏻 verwenden
[self.navigationController.navigationBar.topItem setTitle:@"Titlet"];
Verwenden Sie es in der ViewDidLoad-Methode
Format :
@property(nonatomic,readonly,retain) UINavigationItem *navigationItem; // Created on-demand so that a view controller may customize its navigation appearance.
Beispiel:
self.navigationItem.title = @"Title here";
Sehr wichtiger Hinweis: Stellen Sie sicher, dass Sie die oben genannten Änderungen in der viewDidLoad-Methode des übergeordneten View Controllers oder in der Navigationsleiste der übergeordneten Ansicht im Storyboard vornehmen
Manchmal kann es vorkommen, dass Sie den Titel aktualisieren und dies keine Auswirkungen hat. Dies kann der Fall sein, wenn Sie eine benutzerdefinierte Ansicht für den Titel haben. topItem
Daher möchten Sie ihn möglicherweise folgendermaßen aktualisieren:(self.navigationController?.navigationBar.topItem?.titleView as? UILabel)?.text = "My Happy New Title"