Соединение между контроллером UINavigation и UITabBarController

#iphone #uinavigationcontroller #uitabbarcontroller #uitabbaritem

#iPhone #uinavigationcontroller #uitabbarcontroller #uitabbaritem

Вопрос:

Я искал и искал, но пока все еще не могу разобраться с этой проблемой ole! 🙁

У меня в моем main.xib есть TabBarController, который настроен с пятью ViewControllers.

Я пытаюсь сделать так, чтобы первый viewcontroller был навигационным контроллером, чтобы, если выбрана первая вкладка, я мог нажимать и выводить виды на экран.

Но, хоть убейте, я не могу заставить это работать?

Я попробовал это в моем методе делегирования didLaunch приложения:

 UITabBarController *tabBarController = [[UITabBarController alloc] init];
tabBarController.delegate=self;
FirstViewController *first = [[FirstViewController alloc] initWithNibName:@"FirstView" bundle:[NSBundle mainBundle]];
UINavigationController *firstNav = [[UINavigationController alloc] initWithRootViewController:first];  
NSArray* controllers = [NSArray arrayWithObjects:firstNav, nil];  
tabBarController.viewControllers = controllers;  
[window addSubview:tabBarController.view];
  

для чего я вижу, что отображается мой вид, но на панели вкладок не отображаются кнопки?

Какой-нибудь совет, пожалуйста?? спасибо

Ответ №1:

Для этого вам необходимо программно добавить контроллеры просмотра в панель вкладок. Как показано ниже:

 oFirstViewController.title = @"First View";
oFirstViewController.tabBarItem.image = [UIImage imageNamed:@"ico.png"];
UINavigationController *myNavigationController1 = [[UINavigationController alloc] initWithRootViewController:oFirstViewController]; 
tabBarController.viewControllers = [NSArray arrayWithObjects:myNavigationController1, myNavigationController2, myNavigationController3, myNavigationController4, nil];
  

Таким образом, вам нужно добавить оставшийся view-controller к вашему контроллеру tabbar.

Надеюсь, это будет полезно для вас.

Дайте мне знать в случае возникновения каких-либо трудностей.

Комментарии:

1. ча-чинг! спасибо, приятель 😉 Также спасибо всем, кто откликнулся, ценю это 😉

Ответ №2:

Ваш TabBarController содержит только один ViewController. Таким образом, в TabBarController будет доступен только один элемент TabBarItem. Поскольку доступен только один ViewController, этот TabBarItem будет выбран по умолчанию, и вы не сможете изменить выбор. Таким образом, вы не чувствуете, что есть кнопка. Но оно есть. Вы можете задать заголовок и изображение для ViewController, и вы увидите разницу.

 first.title = @"firstTab";
first.navigationItem.image = [UIImage imageNamed:@"firstTab.png"];
  

Ответ №3:

Ниже приведена ссылка, объясняющая, как настроить контроллер панели вкладок и контроллер навигации
Ссылка 1

Надеюсь, это поможет вам……

Ответ №4:

 [first.tabBarItem initWithTitle:@"First" image:[UIImage imageNamed:@"first.png"] tag:0];