// // VisibleViewController.swift // flutter_inappwebview // // Created by Alexandru Terente on 02.08.2023. // import UIKit extension UIApplication { var visibleViewController: UIViewController? { guard let rootViewController = keyWindow?.rootViewController else { return nil } return getVisibleViewController(rootViewController) } private func getVisibleViewController(_ rootViewController: UIViewController) -> UIViewController? { if let presentedViewController = rootViewController.presentedViewController { return getVisibleViewController(presentedViewController) } if let navigationController = rootViewController as? UINavigationController { return navigationController.visibleViewController } if let tabBarController = rootViewController as? UITabBarController { return tabBarController.selectedViewController } return rootViewController } }