获取当前的control

//获取当前的control

  • (UIViewController *)getCurrentViewController {
    UIViewController *result = nil;
    UIWindow * window = [[UIApplication sharedApplication] keyWindow];
    NSLog(@"window:%@ window.windowLevel:%f",window,window.windowLevel);
    //app默认windowLevel是UIWindowLevelNormal,如果不是,找到它
    if (window.windowLevel != UIWindowLevelNormal) {
    NSLog(@"window:%@ window.windowLevel:%f",window,window.windowLevel);
    NSArray *windows = [[UIApplication sharedApplication] windows];
    for(UIWindow * tmpWin in windows) {
    if (tmpWin.windowLevel == UIWindowLevelNormal) {
    NSLog(@"tmpWin:%@ tmpWin.windowLevel:%f",tmpWin,tmpWin.windowLevel);
    window = tmpWin;
    break;
    }
    }
    }
    id nextResponder = nil;
    UIViewController *appRootVC = window.rootViewController;
    //1、通过present弹出VC,appRootVC.presentedViewController不为nil
    if (appRootVC.presentedViewController) {
    NSLog(@"subviews = %@",[window subviews]);
    nextResponder = appRootVC.presentedViewController;
    }else{
    //2、通过navigationcontroller弹出VC
    NSLog(@"subviews == %@",[window subviews]);
    UIView *frontView = [[window subviews] objectAtIndex:0];
    nextResponder = [frontView nextResponder];
    }
    //1、tabBarController
    if ([nextResponder isKindOfClass:[UITabBarController class]]){

      UITabBarController * tabbar = (UITabBarController *)nextResponder;
      UINavigationController * nav = (UINavigationController *)tabbar.viewControllers[tabbar.selectedIndex];
      //或者 UINavigationController * nav = tabbar.selectedViewController;
      result = nav.childViewControllers.lastObject;
    

    }else if ([nextResponder isKindOfClass:[UINavigationController class]]){
    //2、navigationController

      UIViewController * nav = (UIViewController *)nextResponder;
      result = nav.childViewControllers.lastObject;
    

    }else{//3、viewControler

      result = nextResponder;
    

    }

    return result;
    }

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容