如何在iOS中使用导航栏隐藏/显示视图的标签栏? [英] How to hide/show tab bar of a view with a navigation bar in iOS?
问题描述
我有导航栏和标签栏的视图。我想要发生的是隐藏某个视图上的标签栏,并在用户更改视图时再次显示标签栏。
I have views with a navigation bar and a tab bar. What I would like to happen is to hide the tab bar on a certain view and show the tab bar again when the user changes views.
我看到了一段代码隐藏标签栏:
I saw a snippet of code for hiding the tab bar:
-(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/
我在视图中调用此项,其中我希望标签栏隐藏
I call this on the view wherein I want the tab bar hidden
[self makeTabBarHidden:YES];
当我在该视图上显示/隐藏它但我导航回上一个视图时它工作正常,标签栏也有隐藏。我尝试在视图的 viewDidUnload
中调用该函数, viewWillDisappear
, viewDidDisappear
功能但没有任何反应。在上一个视图的 viewDidLoad
, viewWillAppear
, viewDidAppear中调用该函数时也是如此
函数。
it works fine when i show/hide it on that view but when I navigate back to the previous view, the tab bar there is also hidden. I tried calling that function in the view's viewDidUnload
, viewWillDisappear
, viewDidDisappear
functions but nothing happens. The same is true when the function is called in the previous view's viewDidLoad
, viewWillAppear
, viewDidAppear
functions.
推荐答案
您可以设置UIViewController.hidesBottomBarWhenPushed:
You can set the UIViewController.hidesBottomBarWhenPushed instead:
DetailViewController *detailViewController = [[DetailViewController alloc] init];
detailViewController.hidesBottomBarWhenPushed = YES;
[[self navigationController] pushViewController:detailViewController animated:YES];
[detailViewController release];
这篇关于如何在iOS中使用导航栏隐藏/显示视图的标签栏?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!