I have a UIViewController (red) set as the first tab of a UITabBarController as shown in the storyboard below. This view controller is a container view
UIViewController
UITabBarController
I know you are also looking for an answer which works on iOS 6, but on iOS 7 and above you can use
self.extendedLayoutIncludesOpaqueBars = YES;
Have you tried setting self.edgesForExtendedLayout = UIRectEdgeAll; in -(void)viewDidLoad of Table View Controller - Root?
self.edgesForExtendedLayout = UIRectEdgeAll;
-(void)viewDidLoad
Table View Controller - Root
Note: iOS 7 only