NunchakusHuang的专栏

Python视频教学:http://study.163.com/provider/1025897964/index.htm?utm_campaign=commission&utm_medium...

iOS开发中dismiss到最底层控制器的方法

如题,苹果自带的是没有直接dismissToRootViewController之类的方法,如果需要直接dismiss到最底层的那个控制器,可以自己写一个dismissToRootViewController方法,代码如下:

-(void)dismissToRootViewController
{
    UIViewController *vc = self;
    while (vc.presentingViewController) {
        vc = vc.presentingViewController;
    }
    [vc dismissViewControllerAnimated:YES completion:nil];
}
解释两个属性:

presentingViewController和presentedViewController

A----(present)-----B----(present)-----C

那么A就是B的presentingViewController.

C就是B的presentedViewController.

另外,self调用dismiss方法会的时候会判断self.presentedViewController是否存在,如果存在,就只会将self.presentedViewController给dismiss掉,自己不会dismiss掉。所以我们一直遍历到最底层的控制器,然后调用dismiss方法,就会将所有的presentedViewController给dismiss掉。

阅读更多
版权声明: https://blog.csdn.net/huangyong1314/article/details/45198969
个人分类: iOS开发
上一篇如何将本地仓库和github仓库关联起来
下一篇iterm配色~/.bash_profile文件内容
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭