I'm trying to present a TabBarController on top of another TabBarController. My application's MainWindow.xib looks like this: Code: Files Owner First Responder My App App Delegate Window TabBarContoller +TabBar +Nav Controller Subclass (a custom class) +Navigation Bar +Table View Contoller Subclass (custom class) +Tab Bar Item +Second View Controller (not yet hooked up) I'm trying to display a xib file when an item is clicked in the TableView. This xib file has a TabBarController as it's main view, but when the view displays, the tab bar and navigation bar are both invisible. The code I'm using to display it is: Code: MyAppAppDelegate *delegate = [[UIApplication sharedApplication] delegate]; [delegate.customNavController presentModalViewController:customDetailEditViewController animated:YES]; If I use the code below to push the view controller onto the stack, I see the correct navigation bar, but the TabBar from the root view controller is shown instead of the one from the view which has been pushed. This is called from the tableViewController (a custom class). Code: [delegate.customNavController pushViewController:customDetailEditViewController animated:YES]; I even tried removing the TabBarController and manually implementing my own TabBar delegates but the same effect occurs (either no NavigationBar or TabBar, or the NavigationBar/TabBar from the root ViewController). I've uploaded the source to http://mi6.nu/tabcontroller.zip . I'd really appreciate it if someone with a bt more experience with iOS could take a look.