Skip to content

Instantly share code, notes, and snippets.

@clapslock
Created July 4, 2019 07:45
Show Gist options
  • Select an option

  • Save clapslock/4d684947e2a4f0b0f0a7b36cbb71c117 to your computer and use it in GitHub Desktop.

Select an option

Save clapslock/4d684947e2a4f0b0f0a7b36cbb71c117 to your computer and use it in GitHub Desktop.
Swift- get nearest ViewController in the view hierarchy
private func getRootViewController() -> UIViewController? {
var rootViewController = UIApplication.shared.keyWindow?.rootViewController
if let navigationController = rootViewController as? UINavigationController {
rootViewController = navigationController.viewControllers.first
}
if let tabBarController = rootViewController as? UITabBarController {
rootViewController = tabBarController.selectedViewController
}
return rootViewController
}
// -- Alternative solution
var topVC = UIApplication.sharedApplication().keyWindow?.rootViewController
while((topVC!.presentedViewController) != nil) {
topVC = topVC!.presentedViewController
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment