Привет, ребята,Как правильно перемещаться от navigationController к tabBarController с собственным navigationControllers
У меня есть общая проблема проектирования с применением iPhone. Я хочу знать основной принцип, как перейти от обычного вида с помощью navigationController к tabBarController с вкладками, где каждая вкладка имеет свой собственный навигационный контроллер (больше не нужен первый навигационный контроллер).
Позвольте мне показать вам, как я сделал это:
Сначала я добавил представление с кнопкой navigationController. AppDelegate добавляет эту navigationController (с точки зрения контроллера конечно) как подвид в окно:
[window addSubview:navigationController.view];
Когда я на этот новый взгляд (с navigationController сверху) я нажимаю на кнопку, которая принимает меня новый взгляд, который имеет tabBarController (со своим navControllers):
SearchViewController *searchViewController = [[SearchViewController alloc] initWithNibName:@"SearchView_iPhone" bundle:nil];
searchViewController.tabBarItem.title = @"FirstTab";
UINavigationController *searchNavigationController = [[UINavigationController alloc] initWithRootViewController:searchViewController];
SettingsViewController *settingsViewController = [[SettingsViewController alloc] initWithNibName:@"SettingsView_iPhone" bundle:nil];
settingsViewController.tabBarItem.title = @"SecondTab";
UINavigationController *settingsNavigationController = [[UINavigationController alloc] initWithRootViewController:settingsViewController];
//Add navigation controllers to tabBar controller
tabBarController = [[UITabBarController alloc] init];
tabBarController.viewControllers = [NSArray arrayWithObjects:searchNavigationController, dictionariesNavigationController, settingsNavigationController, nil];
Хорошо, я добавил все мнения (с navControllers) до tabBarController. Все, что мне нужно сделать, это нажать tabBarController, чтобы увидеть:
[self.navigationController pushViewController:tabBarController animated:YES];
Но после того, что я вижу, что navigationController с первого взгляда по-прежнему присутствует на представлениях с tabBars. Это логично, потому что я нажал tabBarController с navigationController. Поэтому я сделал это, чтобы скрыть это:
self.navigationController.navigationBarHidden = YES;
Теперь это выглядит нормально. Все виды tabBar имеют собственный navController.
ОСНОВНАЯ ПРОБЛЕМА: Когда я хочу нажать другой вид (settingsResultsViewController) из скрытой таблицы (settingsTableViewCell), которая находится в settingsViewController, ничего не происходит. Вот код:
SettingsResultsViewController *settingsResultsViewController = [[SettingsResultsViewController alloc] initWithNibName:@"SettingsResultsView_iPhone" bundle:nil];
[self.navigationController pushViewController:settingsResultsViewController animated:YES];
Я также попытался выдвинуть эту точку зрения с AppDelegate так:
[delegatePhone.settingsViewController.navigationController pushViewController:settingsResultsViewController animated:YES];
[delegatePhone.firstViewController.navigationController pushViewController:settingsResultsViewController animated:YES];
Но опять ничего не происходит.
Я предполагаю, что основная проблема заключается в навигацииКонтроллеры. Первый navigationController все еще находится где-то сзади, а я хочу нажать с текущего navController на этом конкретном tabBar.
Есть ли способ нажать новый вид (tabBarController в моем случае) с первого взгляда, кроме как с navigationController?
Все, что я хочу, это когда кнопка на первом представлении - это клик, который приложение вызывает меня в tabBarController и вообще забывает о firstView (и первом навигационном контроллере) - мне они больше не нужны.
Надеюсь, я дал понять.
Благодарим за помощь. Я действительно предлагаю это.
Я гугл для решения и некоторые один сказал, что мне нужно установить tabBarController в качестве контроллера зрения корня. Это правильно? Как я могу это сделать ? –