美文网首页iOS 开发总结
【OC】获得当前显示控制器

【OC】获得当前显示控制器

作者: Richard_Wei | 来源:发表于2017-05-27 09:37 被阅读0次
/// 获得当前显示控制器
+ (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;
}

相关文章

网友评论

    本文标题:【OC】获得当前显示控制器

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