Skip to content

Instantly share code, notes, and snippets.

@embassem
Created April 2, 2020 17:58
Show Gist options
  • Save embassem/f1180bbb348c11e1ff2b2a222a5d3b7b to your computer and use it in GitHub Desktop.
Save embassem/f1180bbb348c11e1ff2b2a222a5d3b7b to your computer and use it in GitHub Desktop.
getLastVisibleController
func getLastVisibleController(ofParent parent: UIViewController? = nil) -> UIViewController? {
if let vc = parent {
if let tab = vc as? UITabBarController, let selected = tab.selectedViewController {
return getLastVisibleController(ofParent: selected)
} else if let nav = vc as? UINavigationController, let top = nav.topViewController {
return getLastVisibleController(ofParent: top)
} else if let presented = vc.presentedViewController {
return getLastVisibleController(ofParent: presented)
} else {
return vc
}
} else {
if let rootVC = UIApplication.shared.keyWindow?.rootViewController {
return getLastVisibleController(ofParent: rootVC)
} else {
return nil
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment