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