Skip to content

Instantly share code, notes, and snippets.

@tugcearar
Created December 21, 2022 08:55
Show Gist options
  • Save tugcearar/6325b27d60120f9ec97acfb83e182cbb to your computer and use it in GitHub Desktop.
Save tugcearar/6325b27d60120f9ec97acfb83e182cbb to your computer and use it in GitHub Desktop.
var visibleViewController: UIViewController? {
let sceneDelegate = UIApplication.shared.connectedScenes.first?.delegate as? SceneDelegate
guard let rootViewController = sceneDelegate?.window?.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
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment