Let's say you want to remove the fourth tab from the tab bar (tab index == 3). Just modify the tabbar controller's viewControllers
array accordingly:
NSUInteger indexToRemove = 3;
NSMutableArray *controllersToKeep = [NSMutableArray arrayWithArray:tabBarController.viewControllers];
UIViewController *removedViewController = [[controllersToKeep objectAtIndex:indexToRemove] retain];
[controllersToKeep removeObjectAtIndex:indexToRemove];
[tabBarController setViewControllers:controllersToKeep animated:YES];
Note that if you want to keep the removed/hidden view controller around in the background, it's essential that you retain it before removing it from the tab bar (see line 3).