2013-10-17 112 views
7

請幫我在根視圖中隱藏導航控制器。我已經找到了在我需要的每個視圖控制器中編寫[navigationController setNavigationBarHidden:YES]的解決方案。那麼,它的工作原理,但只是第一次:我運行的應用程序,在根視圖我沒有導航,然後我去第二個視圖 - 導航出現,確定。但之後我在導航控制器中按「返回」,從根視圖導航並沒有消失。我和xib一起工作。如何隱藏根視圖中的導航控制器?

回答

18

在RootViewController的

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

在第二視圖(旁邊RootViewController的)

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

謝謝!你的答案有效。謝謝大家的回答。 –

0

嘗試了這一點

使用您的所有視圖控制器這行代碼

[navigationController setNavigationBarHidden: YES animated:YES]; 

如果沒有動畫需要,你可以做動畫:NO,並在viewDidLoad中添加此代碼或把它放在viewWillAppear中或viewDidAppear。

在你的情況

[navigationController setNavigationBarHidden:YES animated:NO]; 

你的RootViewController的, 和

[navigationController setNavigationBarHidden:NO animated:YES]; 

您的其他viewControllers

0

隱藏導航欄所有視圖控制器的視圖將出現方法。

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

我相信你正在使用的標籤欄控制器。

您的代碼正在爲第一個視圖控制器工作,因爲您只有代碼。對於第二個視圖控制器,它會默認,因此對於第二個視圖控制器,您會看到導航欄。

要隱藏所有視圖控制器導航欄,把隱藏的代碼在所有視圖控制器viewWillAppear中

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

看起來像它花了你最長的時間來寫這:) – Jaro

相關問題