最开始的时候我用的
- (void)hideTabBar {
if (self.tabBarController.tabBar.hidden == YES) {
return;
}
UIView *contentView;
if ( [[self.tabBarController.view.subviews objectAtIndex:0] isKindOfClass:[UITabBar class]] )
contentView = [self.tabBarController.view.subviews objectAtIndex:1];
else
contentView = [self.tabBarController.view.subviews objectAtIndex:0];
contentView.frame = CGRectMake(contentView.bounds.origin.x, contentView.bounds.origin.y, contentView.bounds.size.width, contentView.bounds.size.height + self.tabBarController.tabBar.frame.size.height);
self.tabBarController.tabBar.hidden = YES;
}
- (void)showTabBar
{
if (self.tabBarController.tabBar.hidden == NO)
{
return;
}
UIView *contentView;
if ([[self.tabBarController.view.subviews objectAtIndex:0] isKindOfClass:[UITabBar class]]){
contentView = [self.tabBarController.view.subviews objectAtIndex:1];
}else{
contentView = [self.tabBarController.view.subviews objectAtIndex:0];
}
contentView.frame = CGRectMake(contentView.bounds.origin.x, contentView.bounds.origin.y, contentView.bounds.size.width, contentView.bounds.size.height - self.tabBarController.tabBar.frame.size.height);
self.tabBarController.tabBar.hidden = NO;
}
hidesBottomBarWhenPushed
这个属性,确实是非常的神奇,一句话就可以隐藏UITabBar。
根据我的项目中的经验,要么项目中全用hidesBottomBarWhenPushed 要么全用iOS7之前的方法。
项目中两者混用确实把我给坑了一把(比如融云的SDK不知道用的什么方法,而你的项目却用的iOS7之前的方法),建议以后全用hidesBottomBarWhenPushed避免不必要的问题发生,