На самом деле это правильный подход.Единственное, что не правильно, это то, где расположены контроллеры.Это произошло в предыдущем контроллере, который выполняет push, но должен быть размещен в объекте, который ответственен, TabBarController.
Когда вы реализуете свое действие, чтобы показать UITabBarController, сделайте следующий код:
- (void) theAction {
SomeTabBarControllerSubClass *controller = [[SomeTabBarControllerSubClass alloc] init];
[self.navigationController pushViewController:controller animated:YES];
[controller release];
}
Затем при реализации класса SomeTabBarControllerSubClass:(.ч)
@interface SomeTabBarControllerSubClass : UITabBarController {
UIViewController *first;
UIViewController *second;
}
@end
(.м)
@implementation SomeTabBarControllerSubClass
- (void) viewDidLoad {
first = [[UIViewController alloc] init]; //Or initWithNib:
second = [[UIViewController alloc] init];
first.view.backgroundColor = [UIColor greenColor] //Just example
second.view.backgroundColor = [UIColor redColor] //Just example
first.tabBarItem.image = [UIImage imageNamed:@"someImage.png"];
self.viewControllers = [NSArray arrayWithObjects:first,second,nil];
}
- (void) dealloc {
[first dealloc];
[second dealloc];
[super dealloc];
}
@end