美文网首页
Present多次后获取最顶层的VC

Present多次后获取最顶层的VC

作者: 12345qwert | 来源:发表于2018-11-02 11:48 被阅读68次

    前言

    假如页面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页面

    相关文章

      网友评论

          本文标题:Present多次后获取最顶层的VC

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