Например, у нас есть три UIViewControllers: A, B, C.
Мы нажимаем B из A .
В B мы вызываем некоторый API:
func getProduct(productNumber: String) {
someService.rxGetProduct(productNumber: productNumber)
.asObservable()
.trackActivity(loading)
.subscribe(onNext: { [weak self] product in
guard let `self` = self else { return }
let cViewModel: CViewModel = .init()
let cViewController: CViewController = .init(viewModel: cViewModel)
self.navigationController?.pushViewController(cViewController, animated: true)
}, onError: { [weak self] error in
// error handling
}).disposed(by: disposeBag)
}
В методе, приведенном выше, мы получаем некоторую модель продукта и нажимаем
C на закрытие контроллера.
Проблема в том, что когда мы возвращаемся из C контроллера просмотра к B контроллера просмотра - C Контроллер представления не деинициализируется. C контроллер представления деинициализируется, когда мы возвращаемся из B контроллера просмотра к A контроллеру представления.
Что я делаю неправильно