2012-08-07 38 views
7

我有一個故事板iOS應用程序,有很多我瀏覽過的視圖。我有一個UINavigationController選擇「顯示工具欄」選項,然後填充我的視圖層次結構。如何使用故事板隱藏UINavigationController的工具欄?

說我認爲流動是3次,A,B,和C:

View A --(push)--> View B --(push)--> View C 

視圖A是一個正常的視圖控制器,具有用於推查看B. 視圖B是在工具欄上的按鈕一個表格控制器,所以我想在這裏隱藏工具欄。 視圖C是視圖A的另一種視圖,需要顯示一個工具欄。

在Xcode中/故事板,如果在查看BI選中「隱藏的推底部欄」,它正是這麼做的 - 底欄被隱藏查看B.同樣的,如果我選擇了「底欄」「無」選擇選項,對於視圖B.良好沒有酒吧。

這是我的問題:無論我做什麼,對視圖B使用任一選項,我的工具欄不會返回視圖C.如果我將視圖C的工具欄設置爲推斷(並取消隱藏推)不會顯示,也不會將其手動設置爲「工具欄」。

任何想法?

回答

15

As @Zoltán說,Storyboard沒有提供完整的答案。

設置self.navigationController.toolbarHidden = YES/NO on viewDidLoad或viewWillAppear功能正常,但很難看(在視圖過渡動畫過程中出現黑色矩形代替工具欄)。

這裏就是我所做的視圖B控制器(用於查看C中的倒數)來模仿「隱藏推送」選項的動畫光滑的故事板:

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

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

您是否包含[super viewWillAppear:animated]和[super viewWillDisappear:animated]? – 2013-12-18 18:22:17

+1

不要忘記打電話給超級的觀點會出現並觀看將會消失! – liefersfl 2015-11-12 13:12:18

+1

完美!在Swift中:self.navigationController?.setToolbarHidden(true,animated:true) – abanet 2015-12-11 09:32:46

2

我不認爲你可以純粹在故事板。但是,您可以將其設置爲始終顯示,將按鈕放置在您希望顯示的每個視圖上,然後您可以撥打 self.navigationController.toolbarHidden = YES;當一個視圖控制器被加載,你不希望工具欄出現。 之後,如果另一個VC出現在你想要的工具欄上,只需將toolbarHidden設置爲NO。

+0

這個工作,只是。 它在過渡時給工具欄消失了一個醜陋的黑色標記。但是,根據所需的代碼,以及故事板無法提供整個事物,這是正確的。 – Freney 2012-08-07 07:10:03