I have created an empty project (XCode 4.2 IOS SDK 5), I have added a new view to it and make it the root view controller inside the appDelegate, so when the app runs, it displays that view correctly, however, I added a tabbarcontroller to the view, created an IBOutlet for it inside the newly created view, and added this line to viewDidLoad method of the view:
[self.view addSubview:self.tabController.view];
so the tab bar loads correctly in the iphone simulator, but with a little problem that I couldn’t fix: half of that tab bar is shifted down the simulator which prevents tabs’ titles from appearing, exactly as in the following screenshot:

How can I fix this problem?
Most likely it’s because of status bar. But, because subview where you inserting controller can be any size, most universal solution is:
(assuming self.view – is the view, where you adding it)