美文网首页
iOS 获取当前屏幕显示的viewcontroller

iOS 获取当前屏幕显示的viewcontroller

作者: tongyuling | 来源:发表于2018-11-09 15:27 被阅读9次

//获取当前屏幕显示的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 获取当前屏幕显示的viewcontroller

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