Как я могу инициализировать все экземпляры Viper Architecture при работе с 2 или более модулями? [Swift 5] - PullRequest
0 голосов
/ 24 марта 2020

Мне трудно найти способ правильно инициализировать все слои в 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

}

}

...