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

原创 2015年04月22日 18:58:04

如题,苹果自带的是没有直接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掉。

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

iOS开发中,跳转页面最常用的就是push和present这两种方法。在push中有一个方法是popToRootViewControllerAnimated,返回到最底层的控制器。而在present方...

iOS中dismissViewController实现多级模态跳转

最近项目中用到这样一个逻辑:三个视图控制器:A,B,C,A模态跳转到B,B在模态跳转到C,等C操作完后要直接跳转回A,那么问题就来了,我们平时一般用到的只是从谁跳转过来,就在跳转回去,那怎么实现多级返...

ios 如何dismiss连续好几个viewControllers

背景:我建立viewControllerA,B,C,D.目前是A presentViewController B,B presentViewController C,C presentViewCont...

一次性dissmiss多个Viewcontroller

有时候需要登录、注册会通过presentViewController的方式弹出;但是登录可能可以去注册,注册可以去登录,从而造成页面层级present的过多 想要在注册、登录成功后,回到(dis...

dissmissViewController到跟控制器

不知道你有没有遇到过这个问题,控制器A presentViewController B  然后B presentViewController C, 现在呢我想在C 控制器里通过dissmissView...

iOS-多级presentViewController直接返回一级界面

转自: http://www.cnblogs.com/yingkong1987/p/3343937.html当遇到:A presentViewController B , B presentVie...

关于UIImagePickerController 被dismiss 后 屏幕顶部弹出红条 的问题

最近偶然间发现项目中 UIImagePickerController 被dismiss 后 屏幕顶部弹出红条 ,多方查找资料发现目前有两个解决方案: [[AVAudioSession sharedIn...

iOS 控制器多次present后返回根控制器 —— HERO博客

iOS 控制器多次present后返回根控制器。

iOS 如何dismiss所有modalViewController

从视图控制器A  presentViewController 到viewControllerB 再到c...等 获取A,A执行dismissViewController即可 //如果A已经...
  • Lw_Chen
  • Lw_Chen
  • 2015年09月12日 00:45
  • 760

Android 开发 对话框Dialog dismiss和hide方法的区别

http://ningtukun.blog.163.com/blog/static/186541445201310151539697/ dismiss和hide方法都可以隐藏对话框,在需...
  • leeo1010
  • leeo1010
  • 2014年07月02日 15:13
  • 23419
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS开发中dismiss到最底层控制器的方法
举报原因:
原因补充:

(最多只允许输入30个字)