Ok, I've invested almost an hour in your issue, and I've finally came up with a solution but I don't think it's the best one. The problem you are experiencing is an iOS7 bug, where the bottom layout guide is improperly placed when switching from a view controller to another. So in order to fix this, create a UITabBarController class, implement UITabBarControllerDelegate, set it in the storyBoard and write the following:
@implementation TabBarController
- (void)viewDidLoad {
[super viewDidLoad];
self.delegate = self;
}
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
[tabBarController.view setNeedsLayout];
}
@end