- (void)setTabBarHidden:(BOOL)hidden { UIView *tab = self.tabBarController.view; if ([tab.subviews count] < 2) { return; } UIView *view; if ([[tab.subviews objectAtIndex:0] isKindOfClass:[UITabBar class]]) { view = [tab.subviews objectAtIndex:1]; } else { view = [tab.subviews objectAtIndex:0]; } if (hidden) { view.frame = tab.bounds; } else { view.frame = CGRectMake(tab.bounds.origin.x, tab.bounds.origin.y, tab.bounds.size.width, tab.bounds.size.height); } self.view.frame = view.frame; self.tabBarController.tabBar.hidden = hidden; }