如果从segue的另一个Tab进来,如何从控制器中删除TabBar?

时间:2017-07-19 15:07:43

标签: ios swift uiviewcontroller uinavigationcontroller uitabbarcontroller

我正在使用一个标签栏控制器,它包含5个标签。在tab1中,我有一个按钮,可以将我带到我的tab2。此tab2嵌入在导航控制器中。

那么当我来自tab1 by tabue时,如何让Tab栏隐藏在tab2中呢?

在故事板中,我有一个活跃的Hide Bottom bar on push。此外,我已经写了self.tabBarController?.tabBar.isHidden = true在视图中加载了tab2。 在tab1中,我的prepareForSegue就像这样

  override func prepare(for segue: UIStoryboardSegue, sender: Any?) {

    if segue.identifier == "ShortcutSegue" {

        let tabVc = segue.destination as! UITabBarController
        tabVc.selectedIndex = 1
        tabVc.tabBarController?.tabBar.isHidden = true
    }         
}

1 个答案:

答案 0 :(得分:0)

对于tab2视图控制器,您可以编写下面的代码来隐藏标签栏。

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
  if let destinationTabBar = segue.destinationViewController as? UITabBarController {
    if segue.identifier == "ShortcutSegue" {
      destinationTabBar.viewControllers?.removeAtIndex(adminScreenIndex)
    }
  }
}

或者您可以在override func prepareForSegue方法中编写以下代码。

if let tabVc = segue.destinationViewController as? tab2ViewController {
  tabVc.hidesBottomBarWhenPushed = true
}

或者您可以在属性检查器的主故事板中为下图中显示的标签栏视图控制器勾选“在按下时隐藏按钮栏”。

Main storyboard attribute inspector "Hide Button Bar On Push"