2015-08-18 300 views
0

出於某種原因,我的底部導航欄不隱瞞我的主視圖控制器(在下面的故事板藍屏):SWIFT:導航欄不隱藏

Main Storyboard

我不想要一個標籤欄顯示藍色屏幕的底部,所以我已經把在下面的代碼在其視圖控制器:

override func viewWillAppear(animated: Bool) { 
    self.navigationController?.setToolbarHidden(true, animated: animated) 
    self.navigationController?.setNavigationBarHidden(true, animated: animated) 
    super.viewWillAppear(animated) 
} 

override func viewWillDisappear(animated: Bool) { 
    self.navigationController?.setToolbarHidden(false, animated: animated) 
    self.navigationController?.setNavigationBarHidden(false, animated: animated) 
    super.viewWillDisappear(animated) 
} 

它頂部導航欄不顯示(如預期),但底部欄不隱藏。它也是每個屏幕上顯示其後兩次(參見下圖):

App Screen

是不是因爲我在界面生成器有一個標籤欄控制器?有沒有辦法通過編程實現帶有四個圖標的標籤欄控制器?我真正想要標籤欄控制器的唯一屏幕是Table View。

+0

試試這個http://stackoverflow.com/questions/30325292/reset-hidesbarsonswipe-in​​-swift/30325619#30325619 –

+0

@Memon,謝謝。我試過了,不幸的是,標籤欄仍然顯示在藍色屏幕的底部。另外,當我滑動到綠色屏幕時,底部的標籤欄會顯示一秒鐘,然後消失。我想知道這是否與我在流程開始時放置了Tab Bar Controller的事實有關。有任何想法嗎? – SB2015

回答

0

使用hidesBottomBarWhenPushed

在藍色背景色的視圖控制器:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    if let desVC: UIViewController = segue.destinationViewController as? UIViewController { 
     desVC.hidesBottomBarWhenPushed = true 
    } 
} 
+0

謝謝@ zy.liu,我試着把下面的viewWillAppear的藍色屏幕(ViewController.swift),'self.hidesBottomBarWhenPushed = true' self.navigationController?.pushViewController(self,animated:true),它給了我一個錯誤:終止應用程序由於未捕獲的異常'NSInvalidArgumentException',原因:'不止一次推送相同的視圖控制器實例' – SB2015

+0

我補充說,如你所建議的。底部條仍然出現在藍色屏幕上,當它跳到下一個屏幕(綠色條)時,最初出現兩個底部條(上面提供的屏幕截圖中顯示的問題相同),然後在一秒鐘之後,上部條消失。任何其他想法如何解決這個問題?謝謝 – SB2015