【发布时间】:2011-09-17 00:07:40
【问题描述】:
我有一个带有导航栏和标签栏的视图。我想要发生的是在某个视图上隐藏标签栏,并在用户更改视图时再次显示标签栏。
我看到了一段隐藏标签栏的sn-p代码:
-(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函数中调用函数时也是如此。
【问题讨论】:
标签: ios uinavigationcontroller uitabbarcontroller