获取当前屏幕显示的viewcontroller

//获取当前屏幕显示的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; 
}

posted on 2015-07-23 10:42  yucaijiang  阅读(354)  评论(0编辑  收藏  举报

导航