美文网首页
iOS 判断视图控制器是否正在显示

iOS 判断视图控制器是否正在显示

作者: Meilin言覃 | 来源:发表于2018-08-30 10:32 被阅读0次
    /**
     判断视图控制器是否正在显示
    
     @param viewController 控制器
     @return 布尔值
     */
    -(BOOL)isCurrentViewControllerVisible:(UIViewController *)viewController
    {
        return (viewController.isViewLoaded && viewController.view.window);
    }
    
    //获取当前屏幕显示的viewcontroller
    - (UIViewController *)getCurrentVC
    {
        UIViewController *result = nil;
        
        UIWindow * window = [[UIApplication sharedApplication] keyWindow];
        if (window.windowLevel != UIWindowLevelNormal)
        {
            NSArray *windows = [[UIApplication sharedApplication] windows];
            for(UIWindow * tmpWin in windows)
            {
                if (tmpWin.windowLevel == UIWindowLevelNormal)
                {
                    window = tmpWin;
                    break;
                }
            }
        }
        
        UIView *frontView = [[window subviews] objectAtIndex:0];
        id nextResponder = [frontView nextResponder];
        
        if ([nextResponder isKindOfClass:[UIViewController class]])
            result = nextResponder;
        else
            result = window.rootViewController;
        
        return result;
    }
    

    相关文章

      网友评论

          本文标题:iOS 判断视图控制器是否正在显示

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