IOS不同父容器内获得控制器方法

+ (UIViewController *)getCurrentVC {


    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;


            }


        }


    }


    UIViewController *result = window.rootViewController;


    while (result.presentedViewController) {


        result = result.presentedViewController;


    }


    if ([result isKindOfClass:[UITabBarController class]]) {


        result = [(UITabBarController *)result selectedViewController];


    }


    if ([result isKindOfClass:[UINavigationController class]]) {


        result = [(UINavigationController *)result topViewController];


    }

    return result;

}

你可能感兴趣的:(IOS)