taler-ios

iOS apps for GNU Taler (wallet)
Log | Files | Refs | README | LICENSE

commit eaa421cfe14a078ce46b66d0cdf2ead907071ed1
parent f5d399ef4239c5be20f7c9bb8d1ec8d1d14e87d8
Author: Marc Stibane <marc@taler.net>
Date:   Thu, 18 Jan 2024 00:40:17 +0100

return to Balances after tx

Diffstat:
MTalerWallet1/Helper/View+dismissTop.swift | 21++++++++++++++++++++-
1 file changed, 20 insertions(+), 1 deletion(-)

diff --git a/TalerWallet1/Helper/View+dismissTop.swift b/TalerWallet1/Helper/View+dismissTop.swift @@ -35,12 +35,31 @@ extension View { if gotPresented { topController.dismiss(animated: animated) } else { - print("Yikes❗️ Trying to dismiss the rootViewController!") + Self.findNavigationController(viewController: topController)?.popToRootViewController(animated: animated) } } else { print("Yikes❗️ There is no window/rootViewController!") } } + @MainActor static func findNavigationController(viewController: UIViewController?) -> UINavigationController? { + guard let viewController = viewController else { + return nil + } + + if let navigationController = viewController as? UITabBarController { + return findNavigationController(viewController: navigationController.selectedViewController) + } + + if let navigationController = viewController as? UINavigationController { + return navigationController + } + + for childViewController in viewController.children { + return findNavigationController(viewController: childViewController) + } + + return nil + } } // MARK: - extension View {