iOS ~ (获取最顶层的视图控制器)rootViewContr

2021-11-16  本文已影响0人  阳光下的叶子呵

1、获取当前所展示的控制器:

//需要获取到显示在最上面的viewController
- (UIViewController *)theTopviewControler{
    //获取根控制器
    UIViewController *rootVC = [[UIApplication sharedApplication].delegate window].rootViewController;
    
    UIViewController *parent = rootVC;
    //遍历 如果是presentViewController
    while ((parent = rootVC.presentedViewController) != nil ) {
        rootVC = parent;
    }
   
    while ([rootVC isKindOfClass:[UINavigationController class]]) {
        rootVC = [(UINavigationController *)rootVC topViewController];
    }
    return rootVC;
}

2、## [找到当前视图的父视图控制器]

- (UIViewController *)viewController {

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

        UIResponder*nextResponder = [next nextResponder];

        if ([nextResponder isKindOfClass:[UIViewController class]]) {

            return(UIViewController*)nextResponder;

        }
    }

    return nil;
}
上一篇 下一篇

猜你喜欢

热点阅读