У меня есть проблема при создании applicatin с tabBarController. Нет никакой проблемы, делающей tabBarController с navigationController, если я создаю его из AppDelegate.
Но теперь я испытал проблему, когда я хочу создать новое представление с tabBarController (3 вкладки, и у каждого есть контроллеры навигации) после нажатия от предыдущего контроллера навигации. Это просто не работает.
Вот код:
MainViewController *mainViewController = [[MainViewController alloc] initWithNibName:@"MainView_iPhone" bundle:nil];
mainViewController.tabBarItem.title = @"First";
UINavigationController *mainNavigationController = [[UINavigationController alloc] initWithRootViewController:mainViewController];
DictionariesViewController *dictionariesViewController = [[DictionariesViewController alloc] initWithNibName:@"DictionariesView_iPhone" bundle:nil];
dictionariesViewController.tabBarItem.title = @"Second";
UINavigationController *dictionariesNavigationController = [[UINavigationController alloc] initWithRootViewController:dictionariesViewController];
tabBarController = [[UITabBarController alloc] init];
tabBarController.viewControllers = [NSArray arrayWithObjects:mainNavigationController, dictionariesNavigationController, nil];
[self.navigationController pushViewController:tabBarController animated:YES];
Существует проблема после того, как представление будет pushe к "Первому" контроллеру. Сбои приложения...
Для справки.
Отношения Borut
Что вы пытаетесь сделать с помощью следующего кода?
[self.navigationController pushViewController:tabBarController animated:YES];
Вы сказали, что в вашем приложении есть 3 вкладки, и на каждой из этих вкладок есть контроллер навигации. Поэтому вам следует добавить контроллеры навигации в tabBarController.viewControllers
(что вы и сделали), но затем вам нужно установить tabBarController
в качестве контроллера корневого представления.
Я сделал это таким образом, и это работает:
registerViewController = [[RegisterViewController alloc] initWithNibName:@"RegisterView_iPhone" bundle:nil];
AppDelegate_Phone *delegatePhone = [[UIApplication sharedApplication] delegate];
[delegatePhone.firstViewController.navigationController pushViewController:registerViewController animated:YES];
Спасибо за помощь, ребята.