获得当期显示的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;

}





你可能感兴趣的:(ios)