Present多次后获取最顶层的VC

前言

假如页面A --> 页面B --> 页面C 都是通过present的形式弹出页面。那么代码的写法如下:

[A present B];
[B present C];

或者

[A present B];
[A.presentd present C];

需求点

条件

  1. 在A的基础上已经present了5次,即A--B--C--D--E--F。
  2. 目前只能获取到A

问题

这个时候来了一个G,如何获取到F,然后将G进行present?

代码

    if (A.presentedViewController) {
        UIViewController *vc = A.presentedViewController;
        UIViewController *needPresentingVC = vc;
        while (needPresentingVC) {
            UIViewController *tempVC = needPresentingVC.presentedViewController;
            if (nil == tempVC) {
                break;
            }
            else {
                needPresentingVC = tempVC;
            }
        }
        dispatch_async(dispatch_get_main_queue(), ^{
            [needPresentingVC presentViewController:G animated:NO completion:^{
            }];
        });
    }

注释

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

相关阅读更多精彩内容

友情链接更多精彩内容