iosWebViewFix/flutter_inappwebview_ios/ios/Classes/UIApplication/VisibleViewController.swift

32 lines
1000 B
Swift

//
// 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
}
}