如何以编程方式设置“推送时隐藏底部栏”?

8

我正在通过一个表视图以编程方式构建视图,其中包含底部选项卡栏。当选择一个表格单元时,我希望这个底部栏消失。我可以使用以下方法实现:

self.tabBarController.tabBar.hidden = YES;

但视图的大小仍然像选项卡栏仍在那里一样。 我发现如果视图是在Storyboard上构建的,并通过设置复选框“在推送时隐藏底部栏”,则视图会调整大小以占用选项卡栏留下的空间。 我该如何以编程方式实现这一点?

2个回答

23
self.hidesBottomBarWhenPushed = YES;
[self.navigationController pushViewController:self.anotherViewController animated:animated];

对于你要推送的特定视图控制器,使用以下代码:

    TheViewController* theController = [[TheViewController alloc] initWithNibName:@"TheViewController" bundle:nil];
    theController.hidesBottomBarWhenPushed = YES;
    [self.navigationController pushViewController:theController animated:YES];
    [theController release];

现在TabBar将自动隐藏和显示。享受这段时间吧 :)


1
我已经这样做了,但问题是当返回到表视图时,选项卡栏仍然隐藏。是否有一种方法可以在完成详细视图后再次显示选项卡栏? - Malagasy Desi
1
这将隐藏特定的视图控制器。 - Saad
太好了!谢谢你。我花了几个小时在这上面,而你只用了几秒钟就解决了它 :) - Malagasy Desi

1

使用 Swift

let viewController = CustomViewController()
viewController.hidesBottomBarWhenPushed = true

self.navigationController?.pushViewController(viewController, animated: true)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接