2013-10-17 8 views
7

Bitte helfen Sie mir, Navigation Controller in der Root-Ansicht zu verstecken. Ich habe die Lösung gefunden, [navigationController setNavigationBarHidden:YES] in jedem View-Controller zu schreiben, den ich brauche. Nun, es funktioniert aber nur zum ersten Mal: ​​Ich starte die Anwendung, in der Stammansicht habe ich keine Navigation, dann gehe ich zur zweiten Ansicht - die Navigation erscheint, OK. Aber dann drücke ich "Zurück" in Navigation Controller, und die Navigation von der Root-Ansicht ist nicht verschwunden. Ich arbeite mit Xib.So verbergen Sie den Navigationscontroller in der Stammansicht?

Antwort

18

In RootViewController

-(void)viewWillAppear:(BOOL)animated 
{ 
    [self.navigationController setNavigationBarHidden:YES animated:NO]; 
} 

Auf dem zweiten Blick (neben RootViewController)

-(void)viewDidLoad:(BOOL)animated 
{ 
    [self.navigationController setNavigationBarHidden:NO animated:NO]; 
} 
+1

Thank you! Deine Antwort funktioniert. Vielen Dank für die Antworten. –

0

dies ausprobieren

Verwenden Sie diese Zeile Code auf allen View-Controller

[navigationController setNavigationBarHidden: YES animated:YES]; 

Wenn keine Animation benötigt wird, um Sie tun können, animiert: NEIN und diesen Code in viewDidLoad hinzuzufügen, oder es viewWillAppear setzen oder viewDidAppear.

In Ihrem Fall

[navigationController setNavigationBarHidden:YES animated:NO]; 

auf RootViewController, und

[navigationController setNavigationBarHidden:NO animated:YES]; 

auf Ihren anderen Viewcontrollers

0

ausblenden Navigationsleiste alle Ansicht des View-Controller-Methode angezeigt.

-(void)viewWillAppear:(BOOL)animated 
{ 
[super viewWillAppear:animated]; 
[navigationCOntroller setNavigationBarHidden:YES animated:animated]; 
} 
0

Ich glaube, Sie Tab-Leiste Controller verwenden.

Ihr Code funktioniert für die erste Ansicht Controller, wie Sie nur Code dort haben. Für den Second-View-Controller wird die Standardeinstellung übernommen, und daher wird für den Second-View-Controller die Navigationsleiste angezeigt.

Zur Navigationsleiste für alle View-Controller zu verbergen, versteckten Code in allen View-Controller setzen ViewWillAppear

-(void)viewWillAppear:(BOOL)animated 
{ 
    [self.navigationController setNavigationBarHidden:YES animated:NO]; 
} 
+0

sieht so aus, als hätte es am längsten gedauert, das zu schreiben :) – Jaro

Verwandte Themen