выдвиньте корневой вид (по умолчанию) второй вкладки из контроллера представления любой другой вкладки - PullRequest
1 голос
/ 14 февраля 2012

У меня есть приложение, состоящее из TabBarController и Navigation Controller. У меня две вкладки: tabA и tabB. Вкладка selecetd по умолчанию - 1 (tabB) с контроллером представления L (когда приложение завершает запуск). Теперь пользователь может перемещаться как: L => M => N => O. Контроллер представления для tabA является x.user может перемещаться как: x => y => z. В верхней части контроллера представления z находится кнопка, которая должна перемещать / push / pop потребителя к корневому контроллеру представления tabB с контроллером представления L.

Любые предложения, спасибо

Ответы [ 3 ]

7 голосов
/ 14 февраля 2012

Это не должно быть трудно, если я правильно понимаю ваш вопрос, который является.

Метод должен выглядеть примерно так:

- (void) pop
{
    UIViewController * target = [[self.tabBarController viewControllers] objectAtIndex:1];

    [target.navigationController popToRootViewControllerAnimated: NO];

    [self.tabBarController setSelectedIndex:1];
}
1 голос
/ 16 февраля 2013

У меня была похожая проблема, но я думаю, что нашел гораздо более простой способ справиться с ней.В контроллеры представления, на которых пользователь может оказаться (O или Z в начальном вопросе), я помещаю

    [self.navigationController popToRootViewControllerAnimated:NO];

в viewWillDisappear этих VC.Кажется прямо и легко.Я упускаю причину, по которой я не хочу этого делать?Как и в оригинальном вопроснике, я всегда хочу начать с корневого VC моей вкладки, независимо от того, где пользователь остановился в последний раз, когда они были на этой вкладке.

Быстрое обновление: я создал свою собственную версию сплитаконтроллер view и добавление вышеуказанной строки к viewWillDisappear сделали некоторые нежелательные вещи на iPad, поэтому мне пришлось добавить условие для проверки типа устройства (на которое не влияла проблема с панелью вкладок, так как оба контроллера представления были частью splitVC)Я построил), но в остальном, кажется, делать то, что я хочу.

1 голос
/ 14 февраля 2012

Вам нужно перейти в корень текущей панели вкладок, а затем использовать метод контроллера панели вкладок, чтобы выбрать кнопку панели вкладок, используя setSelectedIndex метод ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...