Трудно ответить, не увидев больше кода, однако я считаю, что в MVP вы должны сконфигурировать свои контроллеры представления, используя Configurator
.
class FavouritesConfigurator {
func configureViewController(delegate: FavouritesSceneDelegate?) -> FavouritesViewController {
let viewController = FavouritesViewController()
let presenter = FavouritesPresenter(view: viewController)
presenter.delegate = delegate
viewController.setPresenter(presenter)
return viewController
}
}
Ваш метод запуска координатора должен просто вызвать FavouritesConfigurator
и вернуть ViewController
, настроенный вашим докладчиком и т. Д.
Вы можете использовать возвращаемое значение этого FavouritesConfigurator
для настройки ваших просмотров.
Это просто случай удаления каждой конфигурации представлений из метода запуска и непосредственного вызова этого конфигуратора. Это не нарушает никаких принципов, поскольку ваши компоненты по-прежнему изолированы, проверяемы и вызываются правильно.
Опять же, не видя ваш код, трудно быть точным, но попробуйте это:
let controllers = [FavouritesConfigurator().configureViewController(delegate: self),...,...]
tabBarController.viewControllers = controllers