ios获取当前控制器和获取顶层控制器的方法

1、获取当前控制器

//获取手机当前显示的ViewController

  + (UIViewController*)currentViewController{

UIViewController* vc = [UIApplication sharedApplication].keyWindow.rootViewController;



while (1) {
    
    if ([vc isKindOfClass:[UITabBarController class]]) {
        
        vc = ((UITabBarController*)vc).selectedViewController;
        
    }
    
    
    
    if ([vc isKindOfClass:[UINavigationController class]]) {
        
        vc = ((UINavigationController*)vc).visibleViewController;
        
    }
    
    
    
    if (vc.presentedViewController) {
        
        vc = vc.presentedViewController;
        
    }else{
        
        break;
        
    }
    
    
    
}



return vc;

}

2、ios获取顶层控制器

//iOS获取顶层的控制器

- (UIViewController *)appRootViewController

{

UIViewController *RootVC = [UIApplication sharedApplication].keyWindow.rootViewController;

UIViewController *topVC = RootVC;

while (topVC.presentedViewController) {
    
    topVC = topVC.presentedViewController;
    
}

return topVC;

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容