0

我以模態方式顯示UINavigationController。 對於根視圖控制器,我不想顯示導航欄。如何在沒有導航欄的情況下在視圖控制器中使用Nav推送UIViewController

但是對於更深的控制器,我確實想展示它。

我雖然做這樣的事情我的根視圖控制器內的:

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

-(void) viewWillDisappear:(BOOL)animated 
{ 
    [self.navigationController.navigationBar setHidden:NO]; 
} 

然而,這呈現的問題,當我回到第一個視圖控制器根視圖控制器。 按下「後退」按鈕(第一個視圖控制器內部,留下空白區域)後,導航欄消失,並且不僅在rootViewController完成加載之後。 (很明顯,因爲我的代碼使用viewWillAppear)

有沒有解決方案?

我唯一想到的是永久隱藏導航欄,並手動添加導航欄到堆棧中的每個視圖控制器。 我希望不要這樣做,因爲它的工作量更大,而且我想使用箭頭形按鈕,爲此我必須創建自定義圖像。

欣賞任何建議。

+0

你能也許張貼的截圖?你的第二個viewController是全屏嗎?我沒有把你的問題拿到100%。 – DAS

回答

1

這應該這樣做,我沒有測試出來,但在理論上應工作:

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

- (void)viewWillDisappear:(BOOL)animated 
{ 
    [super viewWillDisappear:animated]; 
    [self.navigationController setNavigationBarHidden:NO animated:YES]; 
} 
相關問題