我有tabBar
+ NavigationViewController
。标签栏包含带有单元格的集合视图(Say view1 ),并且单元格中的push seague实现到另一个视图(Say view2 )。
在 view2 中,我想要一个navBar
但没有标签栏。
我试过
self.tabBarController?.tabBar.hidden = true
,
它适用于 view2 ,但当我通过后退按钮返回 view1 时/ strong>该标签仍然隐藏(即使在 view1 类中,我在 viewDidLoad func中添加了self.tabBarController?.tabBar.hidden = false
。
如何让标签栏重新出现在 view1 中?
我在swift工作。
答案 0 :(得分:29)
在viewDidload
中将UIViewController hidesBottomBarWhenPushed
设置为yes:
self.hidesBottomBarWhenPushed = YES;
这样UINavigationController
负责隐藏标签栏。
答案 1 :(得分:27)
答案 2 :(得分:24)
在prepareforsegue中使用
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([segue.identifier isEqualToString:@"showRecipeDetail"]) {
NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
RecipeDetailViewController *destViewController = segue.destinationViewController;
destViewController.recipeName = [recipes objectAtIndex:indexPath.row];
// Hide bottom tab bar in the detail view
destViewController.hidesBottomBarWhenPushed = YES;
}}
=)
答案 3 :(得分:18)
布鲁诺·费尔南德斯在斯威夫特的回答:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "YourSegueIdentifier" {
let destinationController = segue.destinationViewController as! YourViewController
destinationController.hidesBottomBarWhenPushed = true
}
}
这是对我有用的答案。将hidesBottomBarWhenPushed
置于viewDidLoad
方法中无效。
谢谢布鲁诺!
答案 4 :(得分:8)
就我而言,在按下目标视图控制器之前,我先使用hidesBottomBarWhenPushed
。
func showSecondViewController() {
let vc = SecondViewController()
vc.hidesBottomBarWhenPushed = true
self.navigationController?.pushViewController(vc, animated: true)
}
答案 5 :(得分:3)
您必须使用viewWillAppear
或viewDidAppear
。当view1第一次加载(显示)时,将调用viewDidLoad
。如果从view1移动到view2并返回viewDidLoad,则不会再次调用。因此,您必须使用viewWillAppear或viewDidAppear,如
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.tabBarController?.tabBar.hidden = false
}
将此代码放在view1控制器中。每次导航回view1时都会调用viewWillAppear
或viewDidAppear
答案 6 :(得分:1)
如果你想隐藏TabBarController底栏:#Swift 3
在YourViewController中:在ViewDidLoad()方法中
self.tabBarController?.tabBar.isHidden = false