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后 原控制器界面上移解决

在present的控制器中dismiss后,原控制器界面上移.  设置 NavigationController.modalPresentationStyle = UIModalPresentat...
  • baidu_35101424
  • baidu_35101424
  • 2016年06月15日 11:18
  • 781

iOS 如何dismiss所有modalViewController

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

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

iOS开发中,跳转页面最常用的就是push和present这两种方法。在push中有一个方法是popToRootViewControllerAnimated,返回到最底层的控制器。而在present方...
  • qq_34195670
  • qq_34195670
  • 2016年10月12日 20:53
  • 1459

iOS7中的ViewController切换(一.present与dismiss方式)

转载:http://onevcat.com/2013/10/vc-transition-in-ios7/ 这是我的WWDC2013系列笔记中的一篇,完整的笔记列表请参看这篇总览。本文仅作为个人记录...
  • u012361288
  • u012361288
  • 2015年12月29日 19:47
  • 3104

如何判断UIViewController是使用pop,dismiss返回到上级视图控制器

当我们自定义继承UIViewController视图控制器的基类视图控制器时,会新增返回到上级的视图控制器方法,于是就要区分,返回时使用 pop 的方法,还是使用dismiss 的方法了。 方法1 ...
  • potato512
  • potato512
  • 2016年12月14日 10:15
  • 2882

使用通知机制,在dismissViewControllerAnimated后,completion传值给上一个父视图方法

dismissViewControllerAnimated后,completion传值给上一个父视图方法 转自
  • remote_roamer
  • remote_roamer
  • 2014年09月02日 09:42
  • 22523

iOS -- Present/Dismiss之Animation简谈

需求:需要在当前界面弹出一个视图框(这样的需求很多,采用的方式也比较多),因为弹出的视图控件和操作都比较多,避免当前视图控制器的代码冗余,所以不得寻求其他方法。多番思量还是觉得present当属首选t...
  • C_Lluckying
  • C_Lluckying
  • 2016年08月10日 11:21
  • 1756

ios 如何dismiss连续好几个viewControllers

背景:我建立viewControllerA,B,C,D.目前是A presentViewController B,B presentViewController C,C presentViewCont...
  • qilixiang012
  • qilixiang012
  • 2014年12月10日 16:45
  • 2506

iOS中dismissViewController实现多级模态跳转

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

dismissViewControllerAnimated到根视图

如果是在Controller中  则代码如下 -(void)backClick{ UIViewController *vc = self; while (vc.prese...
  • lixianyue1991
  • lixianyue1991
  • 2016年10月20日 17:56
  • 2367
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS开发中dismiss到最底层控制器的方法
举报原因:
原因补充:

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