美文网首页
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