2016-04-10 5 views
0

Я искал решение в течение 6 часов и не придумывал ничего, что касается моей ситуации. мой раскадровки следует поток:Переход от UIViewController к TabBarViewController

TabBarViewController -> NavigationController -> TableViewController -> UIViewController (см рисунок ниже)

Picture of StoryBoard

Когда "Notify" кнопку, в контроллере последний вид (Незнакомка зрения контроллер), нажимается, я хочу программно переходить/переходить от этого контроллера просмотра (контроллер невесты) к другому дочернему элементу TabBarViewController (это контроллер под названием «Look Around» на иллюстрации).

Каждый раз, когда я выполняю традиционный SEGUE:

  1. вариант + перетаскивание SEGUE от Незнакомка View Controller -> Осмотреть Посмотреть контроллер
  2. Дайте это идентификатор непосредственно перейти
  3. программно использовать self.performSegueWithIdentifier.

Я получаю переход. но панель вкладок «Look Around» ушла в раскадровку и в симуляторе, как только я нажму «Notify», представление изменится на «вид вокруг», но панель вкладок ниже не отражает это изменение, так как оно прежнему выделена предыдущая вкладка.

Я уже обрабатывал всю другую обработку в функции IBAction, которую мне нужно обрабатывать. Это просто вопрос, правильно, посылая пользователю другое представление, как только они ударили «Уведомлять».

Любые рекомендации по этому вопросу будут очень признательны.

Если у вас есть какие-либо вопросы или опасения для меня, пожалуйста, не стесняйтесь спрашивать. Я новичок в этом, и я открыт для любой помощи.

+0

Для панели вкладок, чтобы отразить изменения вам необходимо программно изменить его – bolnad

ответ

1

ViewController является дочерним элементом NavigationBar и NavigationBarController является дочерним элементом TabBarController. Поэтому Segue не требуется, так как это будет мешать потоку.

Попробуйте программно

@IBAction func notifyButtonTapped(sender: AnyObject) { 
     tabBarController?.selectedIndex = 1 
     tabBarController?.tabBar.hidden = false 
     self.navigationController?.popToRootViewControllerAnimated(false) 
    } 
+0

Это определенно сделал трюк! Большое вам спасибо за вашу помощь. Помимо изучения этого кода, мне кажется, мне нужно найти твердый учебник по переходам, а когда и когда нет - использовать segues. –

+0

Также изучите вопрос о сдерживании - родительские отношения дочерних элементов диспетчеров представлений. –

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