我有导航栏和标签栏的视图。我想要发生的是隐藏某个视图上的标签栏,并在用户更改视图时再次显示标签栏。
我看到一段用于隐藏标签栏的代码:
-(void)makeTabBarHidden:(BOOL)hide
{
// Custom code to hide TabBar
if ( [tabBarController.view.subviews count] < 2 ) {
return;
}
UIView *contentView;
if ( [[tabBarController.view.subviews objectAtIndex:0] isKindOfClass:[UITabBar class]] ) {
contentView = [tabBarController.view.subviews objectAtIndex:1];
} else {
contentView = [tabBarController.view.subviews objectAtIndex:0];
}
if (hide) {
contentView.frame = tabBarController.view.bounds;
}
else {
contentView.frame = CGRectMake(tabBarController.view.bounds.origin.x,
tabBarController.view.bounds.origin.y,
tabBarController.view.bounds.size.width,
tabBarController.view.bounds.size.height - tabBarController.tabBar.frame.size.height);
}
tabBarController.tabBar.hidden = hide;
}
来自:http://nickwaynik.com/iphone/hide-tabbar-in-an-ios-app/
我在视图中调用它,其中我想隐藏标签栏
[self makeTabBarHidden:YES];
当我在该视图上显示/隐藏它时它工作正常但当我导航回到上一个视图时,那里的标签栏也被隐藏了。我尝试在视图的viewDidUnload
,viewWillDisappear
,viewDidDisappear
函数中调用该函数,但没有任何反应。在上一个视图的viewDidLoad
,viewWillAppear
,viewDidAppear
函数中调用函数时也是如此。
答案 0 :(得分:144)
您可以设置UIViewController.hidesBottomBarWhenPushed:
DetailViewController *detailViewController = [[DetailViewController alloc] init];
detailViewController.hidesBottomBarWhenPushed = YES;
[[self navigationController] pushViewController:detailViewController animated:YES];
[detailViewController release];
答案 1 :(得分:35)
答案 2 :(得分:13)
我刚刚在UITabBarController上创建了一个类别,允许你隐藏TabBar,可选择带动画:
https://github.com/idevsoftware/Cocoa-Touch-Additions/tree/master/UITabBarController_setHidden
它添加了tabBarHidden
属性(isTabBarHidden
作为其getter)和- (void)setTabBarHidden:(BOOL)hidden animated:(BOOL)animated
方法。
答案 3 :(得分:2)
self.navigationController.hidesBottomBarWhenPushed=YES;
将此行添加到viewdidload
或viewWillAppear
这会从底部隐藏你的标签。
答案 4 :(得分:2)
尝试隐藏/显示;
-(void)viewWillDisappear:(BOOL)animated{
self.hidesBottomBarWhenPushed = NO;
}
-(void)viewWillAppear:(BOOL)animated{
self.hidesBottomBarWhenPushed = YES;
}
答案 5 :(得分:1)
斯威夫特3: 在tabwillAppear或viewdidappear中设置标签栏隐藏
self.tabBarController?.tabBar.isHidden = true
答案 6 :(得分:0)
单击Xib或情节提要文件上的视图控制器时,属性检查器上可以使用相同的属性。
答案 7 :(得分:0)