如果从控制器中删除TabBar,如果从另一个选项卡通过segue进入?
问题描述:
我正在使用包含5个选项卡的选项卡栏控制器。在tab1中,我有一个按钮将我带到我的tab2。该tab2嵌入在导航控制器中。如果从控制器中删除TabBar,如果从另一个选项卡通过segue进入?
那么我如何让tab bar隐藏在tab2中,当我来自tab1 by segue?
在故事板中,我制作了一个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
}
}
答
对于TAB2视图控制器,你可以写下面的代码隐藏标签栏。
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if let destinationTabBar = segue.destinationViewController as? UITabBarController {
if segue.identifier == "ShortcutSegue" {
destinationTabBar.viewControllers?.removeAtIndex(adminScreenIndex)
}
}
}
或者你可以在你的覆盖func prepareForSegue方法中写下面的代码。
if let tabVc = segue.destinationViewController as? tab2ViewController {
tabVc.hidesBottomBarWhenPushed = true
}
或者你可以勾选在属性检查器下面的图片中显示的标签栏视图控制器的主要故事板“隐藏按钮栏上推”。
Main storyboard attribute inspector "Hide Button Bar On Push"
它不起作用。第一个解决方案不能放在tab2控制器中,因为Tab2是我的目标VC。第二个解决方案没有效果。在提出问题之前已经完成了第三个解决方案。 – Mayur