Files
EeveeSpotifyReborn/Sources/EeveeSpotify/Helpers/WindowHelper.swift
T
2024-07-04 02:44:49 +03:00

56 lines
1.5 KiB
Swift

import UIKit
class WindowHelper {
static let shared = WindowHelper()
let window: UIWindow
let rootViewController: UIViewController
private init() {
self.window = UIApplication.shared.windows.first!
self.rootViewController = window.rootViewController!
}
func present(_ viewController: UIViewController) {
rootViewController.present(viewController, animated: true)
}
func findFirstViewController(_ regex: String) -> UIViewController? {
let rootView = self.rootViewController.view!
var result: UIViewController?
func searchViews(_ view: UIView) {
if let viewController = self.viewController(for: view) {
if NSStringFromClass(type(of: viewController)) ~= regex {
result = viewController
return
}
}
for subview in view.subviews {
searchViews(subview)
}
}
searchViews(rootView)
return result
}
func overrideUserInterfaceStyle(_ style: UIUserInterfaceStyle) {
window.overrideUserInterfaceStyle = style
}
func viewController(for view: UIView) -> UIViewController? {
var responder: UIResponder? = view
while let nextResponder = responder?.next {
if let viewController = nextResponder as? UIViewController {
return viewController
}
responder = nextResponder
}
return nil
}
}