Created
July 4, 2019 07:45
-
-
Save clapslock/4d684947e2a4f0b0f0a7b36cbb71c117 to your computer and use it in GitHub Desktop.
Swift- get nearest ViewController in the view hierarchy
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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