I recently came across a situation where it was useful to have a UITabBar based application, however the actual tab bar was an unnecessary item on the screen. This post is a mini tutorial on how to make this happen.
Inside “application:didFinishLaunchingWithOptions:” method:
tabBarController = [[UITabBarController alloc] init];
tabBarController.viewControllers = [NSArray arrayWithObjects:navController1, viewController1, viewController2, nil];
[window addSubview:tabBarController.view];
[self makeTabBarHidden:TRUE];
Here is the “makeTabBarHidden” method:
-(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;
}
And you are probably wondering how to change the views that are normally controlled by the tab bar? Here is the answer…just simply change the selectedIndex property of the tab bar.
tabBarController.selectedIndex = 1;
Part of this code came from a post I found on iPhoneDevSDK.com, so I took it one step further and made it a complete solution.


I was brainstorming about continuous improvement for my iPhone/iPod Touch apps. I think the information I’m learning in my MBA classes is helping steer my thought process lately, which is totally a good thing. Anyhow, I noticed that users were not being presented with a good image in iTunes of what 