Кто отвечает за вызов услуг с использованием шаблона проектирования Координатора - PullRequest
1 голос
/ 16 марта 2019

У меня есть приложение, использующее шаблон проектирования MVP-C.

Мой rootViewController - это UINavigationController, а Мой домашний поток отображает UITabBarController, который имеет 4 вкладки.

Контроллер панели вкладок имеет UITabBarControllerDelegate, и с помощью tabBarController(_ tabBarController: UITabBarController, didSelect viewController: UIViewController) я могу вызвать метод делегата на моем HomeFlowCoordinator, который позволяет мне правильно установить заголовок на панели навигации для вкладки.

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

Мой вопрос заключается в том, что я сейчасесть требование добавить UIBarButtonItem на некоторых вкладках.Я все еще могу сделать это в координаторе, однако я начинаю задумываться, является ли это правильным местом, поскольку мне нужно назначить селектор действий для кнопки, что будет означать, что логика также будет жить в координаторе, что потенциально может означать любой сервис /звонки провайдера будут жить в координаторе.

Это не правильно.Правильно ли передать мой UINavigationController через DI в мой презентатор или контроллер представления и изменить каждую вкладку там для действий заголовка и кнопки панели навигации?

Если это так, они также могут представлять представления, которыечувствует, что координатор почти становится излишним?

...