У меня есть приложение, использующее шаблон проектирования MVP-C
.
Мой rootViewController - это UINavigationController
, а Мой домашний поток отображает UITabBarController
, который имеет 4 вкладки.
Контроллер панели вкладок имеет UITabBarControllerDelegate
, и с помощью tabBarController(_ tabBarController: UITabBarController, didSelect viewController: UIViewController)
я могу вызвать метод делегата на моем HomeFlowCoordinator
, который позволяет мне правильно установить заголовок на панели навигации для вкладки.
Я сделал это в предположении, что Координатор владеет панелью навигации, и поэтому любые изменения должны обрабатываться координатором, а не вноситься контроллером представления.
Мой вопрос заключается в том, что я сейчасесть требование добавить UIBarButtonItem
на некоторых вкладках.Я все еще могу сделать это в координаторе, однако я начинаю задумываться, является ли это правильным местом, поскольку мне нужно назначить селектор действий для кнопки, что будет означать, что логика также будет жить в координаторе, что потенциально может означать любой сервис /звонки провайдера будут жить в координаторе.
Это не правильно.Правильно ли передать мой UINavigationController
через DI
в мой презентатор или контроллер представления и изменить каждую вкладку там для действий заголовка и кнопки панели навигации?
Если это так, они также могут представлять представления, которыечувствует, что координатор почти становится излишним?