wollen

2016-04-12 19 views
0

eine einfache Navigationsleiste in Tableiste View-Controller hinzuzufügen, habe ich eine Tab-Leiste Controller mit 4 kunden Tableiste Artikel. Ich möchte Navigationsleisten (das einfache Banner mit nur einem Titel) zu zwei der Tab-Leiste-Ansicht-Controller hinzufügen. Das habe ich gemacht. Angenommen, die 4 Registerkarten für die Registerkartenansicht sind vc1, vc2, vc3, vc4. ich einige Codes in der viewDidLoad() unter der Datei vc1ViewController.m hinzufügenwollen

UINavigationBar *navBar = [[UINavigationBar alloc] init]; 
navBar.barStyle = UIBarStyleBlack; 
navBar.topItem.title = @"News"; 
UINavigationItem *title = [[UINavigationItem alloc]initWithTitle:@"news"]; 
[self.view addSubview:navBar]; 

Ich füge auch eine Tableview später

[self.view addSubview:self.tv]; 

Wenn ich die app läuft, könnte die Tabelle gezeigt werden, aber die Navigationsleiste ist nicht da.

Was könnte ich tun, um es zu beheben? Ich möchte nur eine einfache Navigationsleiste mit einem Titel.

+0

Danke Jungs. Ich habe versucht, eine Navigationsleiste zu einer der XIB-Dateien zu ziehen, und es erschien. Also ich denke, vielleicht könnte ich einfach eine Navigationsleiste nach Code hinzufügen. Es scheint, ich habe mich geirrt. – rickyjoy

Antwort

0

Sie haben einen UINavigationController zu erstellen (das ein besonderer Viewcontroller ist und festgelegt, dass für die Registerkarte.) Dadurch wird die navigationbar für Sie erstellen. (https://developer.apple.com/library/ios/documentation/UIKit/Reference/UINavigationController_Class/)

+0

danke mann. Noch eine Frage, ich habe die View-Controller in UINavigationController geändert. Die Navigationsleiste zeigte. Jetzt füge ich einen Titel hinzu, indem ich diesen einfachen Code in der viewDidLoad() unter nav1.m "self.navigationBar.topItem.title = @" news ";" KEIN TITEL ERSCHEINT – rickyjoy

0

Sie haben die viewcontollers der Tab-Leiste zur Navigation Controller setzen, der die View-Controller Sie möchten enthalten.

So anstelle von VC1, VC2, VC3, VC4 für die Tab-Leiste, verwenden nav1, nav2, nav3, nav4 unten gezeigt:

:

UINavigationController *nav1 = [[UINavigationController alloc] initWithRootViewController:vc1]; 
UINavigationController *nav2 = [[UINavigationController alloc] initWithRootViewController:vc2]; 
UINavigationController *nav3 = [[UINavigationController alloc] initWithRootViewController:vc3]; 
UINavigationController *nav4 = [[UINavigationController alloc] initWithRootViewController:vc4]; 

Von dort können Sie einen Titel mit einstellen

[vc1 setTitle:@"title1"]; 
[vc2 setTitle:@"title2"]; 
[vc3 setTitle:@"title3"]; 
[vc4 setTitle:@"title4"]; 

Wie in der UINavigationController Docs:

Wenn keine benutzerdefinierten Titelansicht eingestellt ist, die Navigationsleiste zeigt ein Etikett die Ansicht contr enthält Ollers Standardtitel. Die Zeichenfolge für dieses Label wird normalerweise von der Titeleigenschaft des View-Controllers selbst erhalten. Wenn Sie einen anderen als den mit dem View-Controller verknüpften Titel anzeigen möchten, legen Sie stattdessen die title -Eigenschaft des Navigationselements des View-Controllers fest.

+0

danke Mann. Noch eine Frage, ich habe die View-Controller in UINavigationController geändert. Die Navigationsleiste zeigte. Jetzt füge ich einen Titel hinzu, indem ich diesen einfachen Code in der viewDidLoad() unter nav1.m "self.navigationBar.topItem.title = @" news ";" KEINE TITEL ERSCHEINT – rickyjoy

+0

@rickyjoy bitte sehen Sie die aktualisierte Antwort –

+0

Danke für Ihre Antwort, aber es zeigte immer noch keinen Titel. Ich lese auch die UINavigationController Docs. Interessant. – rickyjoy