Как добавить навигационный контроллер в TabBar Controller программно? - PullRequest
1 голос
/ 24 февраля 2012

В AppDelegate.m я пишу следующий код для панели навигации.

MaterialsListViewController *materials = [[MaterialsListViewController alloc]initWithNibName:@"MaterialsListView" bundle:nil];
    UINavigationController *navigation = [[UINavigationController alloc]initWithRootViewController:materials];

В том же AppDelegate.m я пишу следующий код для панели вкладок.

UIViewController *viewController1, *viewController2;
viewController1 = [[[MaterialsListViewController alloc] initWithNibName:@"MaterialsList" bundle:nil] autorelease];
viewController2 = [[[RecentMaterialsListViewController alloc] initWithNibName:@"RecentMaterialsList" bundle:nil] autorelease];
self.tabBarController = [[[UITabBarController alloc] init] autorelease];
self.tabBarController.viewControllers = [NSArray arrayWithObjects:viewController1, viewController2, nil];
NSArray *items = self.tabBarController.tabBar.items;
UITabBarItem *item1 = [items objectAtIndex:0];
[item1 setTitle:@"Materials"];
UITabBarItem *item2 = [items objectAtIndex:1];
[item2 setTitle:@"Recent"];
self.window.rootViewController = self.tabBarController;

Как добавить панель навигации на панель вкладок?

Ответы [ 2 ]

3 голосов
/ 24 февраля 2012

Вам не хватает UINavigationController.

После того, как вы завернули viewController1

init UINavigationController с вашим viewController имеет RootViewController:

UINavigationController *navigationController_01 = [[UINavigationController alloc] initWithRootViewController:(UIViewController *)];

Затем добавьте navigationController_01 к tabBarController.viewControllers:

self.tabBarController.viewControllers = [NSArray arrayWithObjects:navigationController_01, navigationController_02, nil];
1 голос
/ 24 февраля 2012

В следующей строке вы можете передать navigationcontroller как член массива.

self.tabBarController.viewControllers = [NSArray arrayWithObjects: navigation, viewController2, nil];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...