iOS 获得屏幕正在显示的Controller 的方法

  1. //获取Window当前显示的ViewController  
  2. - (UIViewController*)currentViewController{  
  3.     //获得当前活动窗口的根视图  
  4.     UIViewController* vc = [UIApplication sharedApplication].keyWindow.rootViewController;  
  5.     while (1)  
  6.     {  
  7.         //根据不同的页面切换方式,逐步取得最上层的viewController  
  8.         if ([vc isKindOfClass:[UITabBarController class]]) {  
  9.             vc = ((UITabBarController*)vc).selectedViewController;  
  10.         }  
  11.         if ([vc isKindOfClass:[UINavigationController class]]) {  
  12.             vc = ((UINavigationController*)vc).visibleViewController;  
  13.         }  
  14.         if (vc.presentedViewController) {  
  15.             vc = vc.presentedViewController;  
  16.         }else{  
  17.             break;  
  18.         }  
  19.     }  
  20.     return vc;  

原文地址:https://www.cnblogs.com/somebodywx/p/8929295.html