Я использую архитектуру VIPER в iOS swift. У меня есть 2 viewcontrollers, скажем, A
и B
. Сначала я иду от A
к B
, выполняя некоторые задачи и возвращаясь от B
к A
. С MVC или MVVM мы можем создавать протоколы и передавать данные из B
в A
. Но для VIPER я в замешательстве. Вот мой VIPER код B, а кнопка Назад нажата:
Просмотр:
@IBAction func backButtonTapped(_ sender: UIButton) {
presenter?.goBack()
}
Ведущий:
func goBack() {
router.back()
}
Маршрутизатор:
func back() {
viewController?.navigationController?.popViewController(animated: true)
//here I want to send data back to previous viewcontroller
}
Я попытался создать один метод в Router из предыдущего контроллера и отправить данные этим методом, но он не работает, так как у маршрутизатора нет ни одного экземпляра презентатора или чего-либо еще , кроме просмотра.