32 lines
1014 B
Swift
32 lines
1014 B
Swift
|
//
|
||
|
// UIApplication+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
|
||
|
}
|
||
|
}
|