Как управлять TabBarController на новом представлении после того, как viewController продвигают действие

У меня есть проблема при создании 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

1
задан Borut Tomazin 8 July 2010 в 12:43
поделиться

2 ответа

Что вы пытаетесь сделать с помощью следующего кода?

[self.navigationController pushViewController:tabBarController animated:YES];

Вы сказали, что в вашем приложении есть 3 вкладки, и на каждой из этих вкладок есть контроллер навигации. Поэтому вам следует добавить контроллеры навигации в tabBarController.viewControllers (что вы и сделали), но затем вам нужно установить tabBarController в качестве контроллера корневого представления.

1
ответ дан 2 September 2019 в 23:14
поделиться

Я сделал это таким образом, и это работает:

registerViewController = [[RegisterViewController alloc] initWithNibName:@"RegisterView_iPhone" bundle:nil];
AppDelegate_Phone *delegatePhone = [[UIApplication sharedApplication] delegate];
[delegatePhone.firstViewController.navigationController pushViewController:registerViewController animated:YES];

Спасибо за помощь, ребята.

1
ответ дан 2 September 2019 в 23:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: