Как обращаться с контроллерами представления? - PullRequest
1 голос
/ 21 мая 2011

Привет, ребята, я работаю над приложением. Где есть домашний экран с 5 кнопками. На нажатие каждой кнопки я хочу открыть экран с панелью вкладок с 5 контроллерами представления. Я имею в виду, когда вы нажимаете на кнопку,Панель вкладок открыта. И на панели вкладок также есть кнопка «Назад». При нажатии кнопки «Назад» я хочу вернуться на главный экран и наоборот.Как это сделать, ребята. Любой учебник, ссылки, пример кода будут оценены.

Большое спасибо всем

1 Ответ

1 голос
/ 21 мая 2011

Контроллер 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];
...