美文网首页
IOS(获取最顶层的视图控制器)

IOS(获取最顶层的视图控制器)

作者: 东了个尼 | 来源:发表于2017-09-05 17:37 被阅读0次

    不论中间采用了 push->push->present还是present->push->present都可以准确的获取到正在显示的控制器。
    //获取当前所展示的控制器

    - (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;
    }
    

    相关文章

      网友评论

          本文标题:IOS(获取最顶层的视图控制器)

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