0

В приложении я работаю у меня есть следующие схемы переходов:Создание TabBarController Кнопки ссылки на первый View Controller

SplashScreen (VC) -> TabBarController -> (item1) Навигационный контроллер -> Карта -> Главная -> (item2) Контроллер навигации -> Список^

Предшествующий TabBarController - это заставка (UIViewController) с помощью одной кнопки, которая прикреплена к модальному секу, ведущему к коммутатору. Все остальные сегменты толкаются.

Пункт № 1 представляет собой контроллер вида, который содержит карту объектов, содержащих ссылки на отдельную домашнюю страницу объекта, содержащую подробную информацию о выбранном объекте.

Пункт №2 - это UITableViewController, который имеет список объектов, а также ссылки на одну и ту же домашнюю страницу объекта UIViewController.

Оба они также вложены в контроллеры навигации, которые содержат каждый элемент и домашнюю страницу Buoy.

Прямо сейчас, если вы выбрали Буй на карте и поднимите на него домашнюю страницу буя, а затем перейдите на вкладку списка и выберите буй, если вы вернетесь, чтобы снова выбрать вкладку карты, она по-прежнему отображает главную страницу для первого выбранного буя.

Что бы я хотел сделать, так это, когда пользователь нажимает на любую вкладку, она берет их непосредственно на карту или в список - никогда не возвращается к ранее выбранному бую.

Я искал вокруг на некоторое время, и ближе всего, что я пришел это, в моем AppDelegate.m внутри из didSelectViewController:

NSInteger tag = viewController.tabBarItem.tag; 

if (tag == 4) 
{ 
    NSLog(@"Map Button........"); 

    UIStoryboard* sb = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; 
    UIViewController* vc = [sb instantiateViewControllerWithIdentifier:@"TheMap"]; 
    self.window.rootViewController = vc; 

    UINavigationController *navigationController = (UINavigationController *)self.window.rootViewController.tabBarController; 
    [navigationController pushViewController:vc animated:YES]; 
} 

Это возвращает меня к карте, но без навигационных элементов из Nav Controller.

Это мое первое приложение для iOS, и я прошел через некоторые из документов Apple и просмотрел их пример кода, но я не нашел тот, который специально затрагивает мои проблемы.

Спасибо!

ответ

0

Контроллер просмотра, передаваемый в tabBarController:didSelectViewController, должен быть вашим контроллером навигации. Таким образом, вы должны иметь возможность вызвать метод popToRootViewController.

+0

Спасибо за респирацию! И извините за мой медленный ответ.
- (недействительными) tabBarController: (UITabBarController *) tabBarController didSelectViewController: (UIViewController *) ViewController { [ViewController popToRootViewController]; ---- Это то, что я пытаюсь сделать, но он говорит мне, что нет никакого интерфейса для popToRootViewController – DV77

+0

Спасибо за респирование! И извините за мой медленный ответ.
'- (Недействительными) tabBarController: (UITabBarController *) tabBarController didSelectViewController: (UIViewController *) ViewController { [ViewController popToRootViewController];' ---- Это то, что я пытаюсь сделать, но его говоря, что нет интерфейса для popToRootViewController – DV77

Смежные вопросы