From ab1e607943211e8a5ead94514875ead269e6f957 Mon Sep 17 00:00:00 2001 From: Bruno Muniz Azevedo Filho <bruno@elixxir.io> Date: Thu, 21 Jul 2022 19:01:15 -0300 Subject: [PATCH] Fixes bug on scroll view reseting offset --- .../Controllers/SearchContainerController.swift | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/Sources/SearchFeature/Controllers/SearchContainerController.swift b/Sources/SearchFeature/Controllers/SearchContainerController.swift index 17af9137..ad85b256 100644 --- a/Sources/SearchFeature/Controllers/SearchContainerController.swift +++ b/Sources/SearchFeature/Controllers/SearchContainerController.swift @@ -12,6 +12,7 @@ public final class SearchContainerController: UIViewController { lazy private var screenView = SearchContainerView() + private var contentOffset: CGPoint? private var cancellables = Set<AnyCancellable>() private let viewModel = SearchContainerViewModel() private let leftController = SearchLeftController() @@ -29,11 +30,21 @@ public final class SearchContainerController: UIViewController { navigationController?.navigationBar.customize( backgroundColor: Asset.neutralWhite.color ) + + if let contentOffset = self.contentOffset { + screenView.scrollView.setContentOffset(contentOffset, animated: true) + } + } + + public override func viewWillDisappear(_ animated: Bool) { + super.viewWillDisappear(animated) + contentOffset = screenView.scrollView.contentOffset } public override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) viewModel.didAppear() + rightController.viewModel.viewWillAppear() } public override func viewDidLoad() { @@ -68,7 +79,6 @@ public final class SearchContainerController: UIViewController { let point = CGPoint(x: screenView.frame.width, y: 0.0) screenView.scrollView.setContentOffset(point, animated: true) leftController.endEditing() - rightController.viewModel.viewWillAppear() } else { screenView.scrollView.setContentOffset(.zero, animated: true) leftController.viewModel.didSelectItem($0) -- GitLab