2016-06-07 41 views
2

我的目標僅僅是當用戶導航到特定屏幕時刪除我的應用程序的選項卡欄,以便我有更多可用空間。如何在用戶導航到其他屏幕時刪除標籤欄?

目前,我的故事板是這樣的:

enter image description here

每當用戶點擊,他們將被帶到另一個屏幕,這是序列中的最後一個屏幕的按鈕。我的目標是簡單地刪除標籤欄,但保持導航。

如果我使用一個show detail segue,那麼它將刪除標籤欄,但也會導航,這是我不想要的東西。

這是最後的畫面(但它仍然有標籤欄):

enter image description here

回答

0

隱藏在viewWillDisappear

self.tabBarController.tabBar.hidden = YES;

1

所有你需要它在你想隱藏的視圖控制器上設置hidesBottomBarWhenPushed = true。插入viewDidLoad()

您還可以設置這個在孩子們的故事板視圖控制器

enter image description here

+0

此方法將調整對象,如標籤或圖像從標籤到無標籤。這就像是發生在分秒 – airsoftFreak

3

你甚至可以設置該屬性hidesBottomBarWhenPushed等於trueDestinationViewController。您可以在prepareForSegue方法覆蓋中執行此操作。

if let vc = segue.destinationViewController as? YOURVIEWCONTROLLER { 

    vc.hidesBottomBarWhenPushed = true 
} 

這樣,如果視圖控制器應該需要在其他情況下,底欄,它會顯示

0

您可以編寫prepareforsegue像下面,

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 

segue.destinationViewController.hidesBottomBarWhenPushed = YES; 

// Get the new view controller using [segue destinationViewController]. 
// Pass the selected object to the new view controller. 
} 

斯威夫特:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 

    segue.destinationViewController.hidesBottomBarWhenPushed = true 

} 

所以在目的地vi不會顯示新的控制器標籤欄。

根據你的問題,你可以在FirstTableViewcontroller實現和tabbar不會在TaretViewController可見。

希望這會有所幫助:)

+0

這種方法有點奇怪,因爲它會調整當前標籤。例如,firstView具有選項卡,然後當轉到另一個屏幕時,它將調整標籤,圖像等的大小。這就像是在瞬間發生的事情 – airsoftFreak

相關問題