美文网首页程序员
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