iOS 获得当期显示的VC,View所在的VC

//1.获得当前正在显示的ViewController 
-(UIViewController *)getVisibleViewController:(UIViewController *)rootViewController{
    if ([rootViewController isKindOfClass:[UINavigationController class]]) {
        return [self getVisibleViewController:[(UINavigationController *)rootViewController visibleViewController]];
    }else if ([rootViewController isKindOfClass:[UITabBarController class]]){
        return [(UITabBarController *)rootViewController selectedViewController];
    }else if (rootViewController.presentedViewController){ 
       //A->B A.presentedViewController = B,B.presentingViewController = A
        return [self getVisibleViewController:rootViewController.presentedViewController];
    }else{
        return rootViewController;
    }
}



//2.获得当前View所在的ViewController  这里的self是 UIView
-(UIViewController*)viewController{
    UIResponder *nextResponder =  self;
    do{   
    nextResponder = [nextResponder nextResponder];
    if ([nextResponder isKindOfClass:[UIViewController class]])
            return (UIViewController*)nextResponder;
    } while (nextResponder != nil);
    return nil;
}

你可能感兴趣的:(Objective,-c,ios)