2012-06-05 21 views
18

Ich versuche, den Titel meiner Nav-Leiste programmgesteuert ändern, aber der Code, den ich verwende, wird nicht funktionieren.Nav-Bar-Titel programmgesteuert ändern

self.navigationController.navigationBar.tintColor = [UIColor redColor]; 
[email protected]"Hello"; 

Ich kann es schaffen, die Farbe der Bar, aber nicht den Text zu ändern.

Antwort

43
self.navigationController.navigationBar.topItem.title = @"YourTitle"; 
+0

Dieses Stück Code funktioniert die genauen wie Mudit, aber es ist kürzer.Sie legen es einfach in viewWillAppear und es ist perfekt – mhorgan

+2

Ich habe Navbar und Tabbar und wenn ich versucht, Nav-Titel programmatisch entweder mit self.navigationItem.title oder self.navigationcontroller.title oder self.title zu bearbeiten, es änderte die Werte sowohl im Navbar-Titel als auch im ersten Tab der Tab-Leiste Diese Zeile ändert nur die Navigationsleiste.Nur für zukünftige Referenz für Leute, die die gleichen Probleme haben :) – Pruthvid

-2

mit Try this:

[navigationController setTitle:@"Title"]; 
+0

nicht für mich arbeiten :( – mhorgan

+0

Nicht ein großartiges Beispiel, wie 'navigationController' ist wahrscheinlich eine Instanzvariable, die hier nicht mit anderen geteilt wird. – mylogon

12

zuerst den Index der aktuellen Controller auf dem Navigationsstapel überprüfen durch

NSLog(@"%@", self.navigationController.viewControllers); 

nach dem Index der aktuellen Viewcontroller zu finden, sagen wir mal 1

UINavigationController *navCon = (UINavigationController*) [self.navigationController.viewControllers objectAtIndex:1]; 
    navCon.navigationItem.title = @"Hello"; 
+0

Danke, Das hat es geschafft, den Titel für die Navigationsleiste zu setzen, aber anstatt den Titel nur für die eine Seite zu setzen, hätte ich gerne einen anderen Titel für jede Registerkarte. Ich habe versucht, den obigen Fix auf zwei verschiedenen Tabs zu verwenden, aber auf jedem Tab, auf den ich zuletzt geklickt habe, wird der Titel der Navigationsleiste dauerhaft geändert. Auch wenn ich meinen anderen Tab lade, ändert sich der Titel nicht. Irgendeine Idee, wie man das repariert? – mhorgan

+2

in viewWillAppear dieses Controllers können Sie den gleichen Prozess anwenden. –

+0

Genie, es funktioniert jetzt perfekt. Danke – mhorgan

25

oder self.navigationItem.title = @"Title";

+0

Das hat für mich funktioniert! Super einfach. Vielen Dank! –

+0

Vielen Dank es funktioniert wie Charme :) – swiftBoy

+0

Perfekt. Und einfach. – jenjenut233

5

Sie können in Verfahren setTitle jetzt in XCode

[self setTitle:@"title"]
oder
[email protected]"title"

innerhalb seines Viewcontroller gebaut werden, benutzen.

+0

ah aththada: D maru ahh –

+0

diese methode wird die tippleiste ändern artikeltitel, nicht sehr gut – jk2K

+0

können wir die größe des titel erhöhen ??? – SANTOSH

1

Für schnelle 2,2

navigationController?.navigationBar.topItem?.title = "Superman title" 
Verwandte Themen