美文网首页刘的个人专题
获取顶层控制器的两种方法

获取顶层控制器的两种方法

作者: 辉546 | 来源:发表于2018-03-14 14:38 被阅读6次

// 获取顶层控制器

//- (UIViewController *)topViewController {

//    UIViewController *resultVC;

//    resultVC = [self _topViewController:[[UIApplication sharedApplication].keyWindow rootViewController]];

//    while (resultVC.presentedViewController) {

//        resultVC = [self _topViewController:resultVC.presentedViewController];

//    }

//    return resultVC;

//}

//- (UIViewController *)_topViewController:(UIViewController *)vc {

//    if ([vc isKindOfClass:[UINavigationController class]]) {

//        return [self _topViewController:[(UINavigationController *)vc topViewController]];

//    } else if ([vc isKindOfClass:[UITabBarController class]]) {

//        return [self _topViewController:[(UITabBarController *)vc selectedViewController]];

//    } else {

//        return vc;

//    }

//    return nil;

//}

//获取顶层控制器

- (MTDBaseViewController *)viewController

{

    for(UIView*next = [selfsuperview]; next; next = next.superview) {

        UIResponder*nextResponder = [nextnextResponder];

        if([nextResponderisKindOfClass:[UIViewControllerclass]]) {

            return(MTDBaseViewController*)nextResponder;

        }

    }

    return nil;

}

相关文章

网友评论

    本文标题:获取顶层控制器的两种方法

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