美文网首页程序员
ios - 获取当前VC OC版

ios - 获取当前VC OC版

作者: biubiuboom | 来源:发表于2020-05-22 15:03 被阅读0次
//获取当前屏幕显示的viewcontroller
- (UIViewController *)getCurrentVC
{
    UIViewController *rootViewController = [UIApplication sharedApplication].keyWindow.rootViewController;

    UIViewController *currentVC = [self getCurrentVCFrom:rootViewController];

    return currentVC;
}
- (UIViewController *)getCurrentVCFrom:(UIViewController *)rootVC
{
    UIViewController *currentVC;

    if ([rootVC presentedViewController]) {
        // 视图是被presented出来的

        rootVC = [rootVC presentedViewController];
    }

    if ([rootVC isKindOfClass:[UITabBarController class]]) {
        // 根视图为UITabBarController

        currentVC = [self getCurrentVCFrom:[(UITabBarController *)rootVC selectedViewController]];

    } else if ([rootVC isKindOfClass:[UINavigationController class]]){
        // 根视图为UINavigationController

        currentVC = [self getCurrentVCFrom:[(UINavigationController *)rootVC visibleViewController]];

    }
    else {
        // 根视图为非导航类

        currentVC = rootVC;
    }

    return currentVC;
}

相关文章

网友评论

    本文标题:ios - 获取当前VC OC版

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