Контроллер Tabbar в стеке навигации сложен. Поскольку каждый контроллер вкладок может иметь и сам контроллер навигации.
Иметь WindowManager
класс. Он должен владеть обоими
- FirstViewController
и
- TabbarController
Все компоненты и сами UITabbarControllers должны быть созданы в классе WindowManager.
Его init
может иметь такой код, аналогичный для двух tabbarcontrollers.
self.tabBarController = [[UITabBarController alloc] init];
self.controllers = [[NSMutableArray alloc] init];
// initialize the view controllers and navigation controllers for the tab bar
self.friendsVC = [[FriendsVC alloc] initWithNibName:@"FriendsView" bundle:nil];
UINavigationController *friendsNVC = [[UINavigationController alloc] initWithRootViewController: friendsVC];
friendsNVC.navigationBar.barStyle = UIBarStyleBlack;
[controllers addObject:friendsNVC];
[friendsNVC release];
self.paymentsVC = [[PaymentsVC alloc] initWithNibName:@"PaymentsView" bundle:nil];
UINavigationController *paymentsNVC = [[UINavigationController alloc] initWithRootViewController: paymentsVC];
paymentsNVC.navigationBar.barStyle = UIBarStyleBlack;
[controllers addObject:paymentsNVC];
[paymentsNVC release];
tabBarController.viewControllers = controllers;
tabBarController.selectedIndex = 0;
tabBarController.delegate = self;
self.view = tabBarController.view;
В WindowManager
вы можете использовать два метода, например,
[WindowManager showViewController] and
[WindowManager showTabbarController].
- showViewController {
//Initiate View controller and use [self.window addSubView:vc.view];
}
- showTabbarController {
// initiate the tabbar manager
}
Вы можете иметь кнопку «назад» в верхней части вашего первого контроллера панели вкладок слева, чтобы вызвать
[WindowManager showViewController];