// // UIApplication+Extension.swift // QuickSearchLocation // // Created by mac on 2024/4/10. // import Foundation import UIKit public extension UIApplication { //MARK: 1.1、获取当前的keyWindow /// 获取当前的keyWindow static var keyWindow: UIWindow? { if #available(iOS 13, *) { return UIApplication.shared.windows.filter { $0.isKeyWindow }.first } else { return UIApplication.keyWindow } } // MARK: 1.2、获取根控制器 /// 获取根控制器 /// - Parameter base: 哪个控制器为基准 /// - Returns: 返回 UIViewController static func topViewController(_ base: UIViewController? = UIApplication.keyWindow?.rootViewController) -> UIViewController? { if let nav = base as? UINavigationController { return topViewController(nav.visibleViewController) } if let tab = base as? UITabBarController { if let selected = tab.selectedViewController { return topViewController(selected) } } if let presented = base?.presentedViewController { return topViewController(presented) } return base } // MARK: 1.3、网络状态是否可用 /// 网络状态是否可用 static func reachable() -> Bool { let data = NSData(contentsOf: URL(string: "https://www.baidu.com/")!) return (data != nil) } }