Быстрая навигация к конкретному дочернему VC с помощью tabBarControllers

У меня есть настройка с tabBarController, идущей к четырем навигационным контроллерам, которые содержат переход к некоторым дочерним контроллерам представления. В этом случае я пытаюсь перейти к одному из дочерних контроллеров представления контроллера навигации. Мне удалось перейти на страницы tabBar с помощью кода. self.tabBarController?.selectedIndex = 4 Но после того, как мне нужно выполнить переход к дочернему контроллеру представления с этой страницы. Любая помощь будет принята с благодарностью.

Общая настройка tabBarController введите здесь описание изображения

Страница контроллера вкладки «Настройки» с дочерними контроллерами представления введите здесь описание изображения


person Alex Hughes    schedule 07.05.2018    source источник


Ответы (1)


1) Сохраните дочерние контроллеры панели вкладок как свойство в массиве в вашем UITabBarController, например.

var tabViewControllers: [UIViewController]!

2) После установки self.tabBarController?.selectedIndex = desiredIndex попросите целевого ребенка выполнить желаемые действия.

let targetNavigationController = self.tabViewControllers[desiredIndex] as? UINavigationController
let yourTargetViewController = targetNavigationController?.viewControllers.first as? YourTargetViewController
// From here do whatever you want: call functions, perform segues, push to navigation stack or present modals, e.g.:
yourTargetViewController?.performSegue(...)
person Vadim Popov    schedule 07.05.2018
comment
Ты человек! Большое спасибо! Серьезно решено, как недели, которые ломали мне голову! ‹3 - person Alex Hughes; 08.05.2018
comment
@AlexHughes, пожалуйста, примите ответ и проголосуйте, если он вам помог :) - person Vadim Popov; 08.05.2018
comment
Я принял это, но это не позволит мне проголосовать за мою репутацию. У меня сработало то, что вы предложили. Но я также пытаюсь сделать то же самое из модального всплывающего окна на панели вкладок. Знаешь ли ты, как сделать это навскидку? Большое спасибо! - person Alex Hughes; 08.05.2018
comment
@AlexHughes ищите свой модальный vc на yourTargetViewController.presentedViewController as? YourModalViewController - person Vadim Popov; 08.05.2018
comment
Я думаю, что я не описал это ясно. Пока я на модальном всплывающем контроллере, я пытаюсь нажать кнопку. Закройте модальный VC, а затем перейдите к целевому контроллеру представления и выполните переход. Я просто не могу понять, как ссылаться на контроллер корневого представления под модальным всплывающим окном. - person Alex Hughes; 08.05.2018