summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--ios/MullvadVPN/Coordinators/App/SettingsCoordinator.swift7
1 files changed, 6 insertions, 1 deletions
diff --git a/ios/MullvadVPN/Coordinators/App/SettingsCoordinator.swift b/ios/MullvadVPN/Coordinators/App/SettingsCoordinator.swift
index 5bfaaa505e..34e8c90450 100644
--- a/ios/MullvadVPN/Coordinators/App/SettingsCoordinator.swift
+++ b/ios/MullvadVPN/Coordinators/App/SettingsCoordinator.swift
@@ -117,7 +117,12 @@ final class SettingsCoordinator: Coordinator, Presentable, Presenting, SettingsV
willShow viewController: UIViewController,
animated: Bool
) {
- guard let route = route(for: viewController) else { return }
+ /*
+ Navigation controller tends to call this delegate method on `viewWillAppear`, for instance during cancellation
+ of interactive dismissal of a modally presented settings navigation controller, so it's important that we
+ ignore repeating routes.
+ */
+ guard let route = route(for: viewController), currentRoute != route else { return }
logger.debug(
"Navigate from \(currentRoute.map { "\($0)" } ?? "none") -> \(route)"