extension UIApplication {
class func topViewController() -> UIViewController? {
let windows = UIApplication.shared.windows
if (window.isKeyWindow && NSStringFromClass(window.rootViewController?.classForCoder ?? UIViewController().classForCoder) != "OGAThumbnailAdViewController") {
return self.topViewController(controller: window.rootViewController)
class func topViewController(controller: UIViewController?) -> UIViewController? {
if let navigationController = controller as? UINavigationController {
return topViewController(controller: navigationController.visibleViewController)
if let tabController = controller as? UITabBarController {
if let selected = tabController.selectedViewController {
return topViewController(controller: selected)
if let presented = controller?.presentedViewController {
return topViewController(controller: presented)