Можно ли представить UINavigationController от другого UINavigationController? - PullRequest
0 голосов
/ 25 мая 2020

У меня есть UINavigationController, который содержит UIViewController. UIViewController действует как меню. Итак, я хочу представить UITabBarController, нажав кнопку в моем UIViewController.
Однако внутри моего UITabBarController мне нужен для каждого ViewController собственный UINavigationController. Сделав что-то вроде этого: viewControllers = [UINavigationController(rootViewController: myVc()), ...] для моего UITabBarController, я получаю странную панель навигации в верхней части моего TableView (которая находится внутри моего ViewController, который представлен моим TabBarController) + некоторые предупреждения в консоли Xcode: new observer <UINavigationController: 0x7fd87d846a00>, removing old observer <UINavigationController: 0x7fd87f02ba00>
Панель навигации выглядит так:
enter image description here
Итак, проблема в том, что я добавляю UINavigationController внутри другого UINavigationController (если я удалю второй UINavigationController, все будет работать, как ожидалось ). К сожалению, мне нужен для каждого (Table) ViewController внутри моего TabBarController собственный UINavigationController, потому что в первом (Table) ViewController я собираюсь присоединить UISearchController, и если бы я прикрепил этот UISearchController к NavigationController, который содержит мой TabBar, то каждый ViewController внутри TabBar получит этот SearchController. Как я могу решить эту проблему?
Любая помощь приветствуется!

1 Ответ

0 голосов
/ 25 мая 2020

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

Вы можете начать с UITabBarController, а затем иметь по одному UINavigationController на элемент вкладки.

Попробуйте это решение: Как управлять несколькими контроллерами навигации в проекте iOS .

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