美文网首页
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