美文网首页
ios获取当前控制器和获取顶层控制器的方法

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

作者: aven_kang | 来源:发表于2021-03-06 20:58 被阅读0次

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.获取顶层控制器

- (UIViewController *)appRootViewController {
 
    UIViewController *RootVC = [UIApplication sharedApplication].keyWindow.rootViewController;
    UIViewController *topVC = RootVC;
    while (topVC.presentedViewController) {
        topVC = topVC.presentedViewController;
    }
 
    return topVC;
 
}

相关文章

网友评论

      本文标题:ios获取当前控制器和获取顶层控制器的方法

      本文链接:https://www.haomeiwen.com/subject/rsvsqltx.html