ViewControllerHelper.cs 987 B

12345678910111213141516171819202122232425262728293031323334
  1. using UIKit;
  2. public static class ViewControllerHelper
  3. {
  4. public static UIViewController GetVisibleViewController()
  5. {
  6. var rootController = UIApplication.SharedApplication.KeyWindow?.RootViewController;
  7. if (rootController == null)
  8. return null;
  9. return GetTopViewController(rootController);
  10. }
  11. private static UIViewController GetTopViewController(UIViewController rootController)
  12. {
  13. if (rootController.PresentedViewController != null)
  14. {
  15. return GetTopViewController(rootController.PresentedViewController);
  16. }
  17. if (rootController is UINavigationController navigationController)
  18. {
  19. return GetTopViewController(navigationController.VisibleViewController);
  20. }
  21. if (rootController is UITabBarController tabBarController)
  22. {
  23. return GetTopViewController(tabBarController.SelectedViewController);
  24. }
  25. return rootController;
  26. }
  27. }