Мне трудно найти способ правильно инициализировать все слои в Viper Architecture. (Просмотр, Ведущий, Интерактор). Я создал слой маршрутизатора, но почему-то он не работает, когда я возвращаюсь от докладчика на другой маршрутизатор. Все ссылки становятся нулевыми.
class FilterByDateAndStatusRouter {
//weak
var routerReservaMainVC : MyReservationRouter?
static func createModuleForFilterByDateAndStatus() -> ViewControllerToPresenter {
let view = FilterByDateAndStatusViewController()
let presenter: ViewControllerToPresenter & InteractorToPresenter = FilterByDateAndStatusPresenter()
let interactor: PresenterToInteractor = FilterByDateAndStatusInteractor()
let router: PresenterToRouterProtocol = FilterByDateAndStatusRouter()
//Create instances of all layers
view.presenter = presenter
presenter.view = view
presenter.router = router
presenter.interactor = interactor
interactor.presenter = presenter
return presenter
}
static func createModuleForPresenterReservaMainVC() -> MyReservationOutput {
let router = MyReservationRouter()
let interactor = MyReservationInteractor()
let presenter = MyReservationPresenter(interactor: interactor, router: router)
let view : MyReservationOutput = presenter
return view
}
}