32 lines
1000 B
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
|
|
}
|
|
}
|