present的使用方式
present只能是A present B , B present C , C present D这样的链式弹出。
不能A present B , A present C , A present D这样的叠加弹出,会报错。
dismiss的使用方法
dismiss是底部父VC的方法,由父类批量dismiss掉它所有的链式弹出的子VC,
如果在子类调用dismiss,它会关闭它自己,如D调用dismiss,D会退出,如果在中间调用dismiss,它会关闭它上面的批量部分,如C调用dismiss,C、D会退出。
presentedViewController属性与presentingViewController属性
UIViewController下presentedViewController属性和presentingViewController属性是用来表示A present B , B present C , C present D这样的链式弹出关系的。
它们表示的意义是:
presentedViewController是底部VC属性,表示下面VC拥有presentedViewController被弹出的VC。
presentingViewController是顶部VC属性,表示上面VC拥有presentingViewController弹出它的VC。
定义如下:
// The view controller that was presented by this view controller or its nearest ancestor.
@property(nullable, nonatomic,readonly) UIViewController *presentedViewController API_AVAILABLE(ios(5.0));
// The view controller that presented this view controller (or its farthest ancestor.)
@property(nullable, nonatomic,readonly) UIViewController *presentingViewController API_AVAILABLE(ios(5.0));
举例如下:
A present B时,A页面在下面,B页面在上面
---------------------A弹B后---------------------
A.presentingViewController (null)
A.presentedViewController B
B.presentingViewController A
B.presentedViewController (null)
---------------------B弹C后---------------------
A.presentingViewController (null)
A.presentedViewController B
B.presentingViewController A
B.presentedViewController C
C.presentingViewController B
C.presentedViewController (null)
常见的问题场景
问题1:业务VC要present出SDK中的功能VC, SDK功能VC要present出子功能VC,当点击SDK中的功能VC的“X”或者子功能VC的“X”,都要让SDK页面完全退出。
简化问题为A present B , B present C 。关闭C时,BC要退出;关闭B时,BC要退出。
对于关闭C时,BC要退出;关闭B时,BC要退出需求可以调用B.presentedViewController dissmiss方法解决。

iOS转场之present与dismiss的使用的更多相关文章

  1. iOS 转场动画探究(一)

    什么是转场动画: 转场动画说的直接点就是你常见的界面跳转的时候看到的动画效果,我们比较常见的就是控制器之间的Push和Pop,还有Present和Dismiss的时候设置一下系统给我们的modalTr ...

  2. iOS 转场动画探究(二)

    这篇文章是接着第一篇写的,要是有同行刚看到的话建议从前面第一篇看,这是第一篇的地址:iOS 转场动画探究(一) 接着上一篇写的内容: 上一篇iOS 转场动画探究(一)我们说到了转场要素的第四点,把那个 ...

  3. iOS转场动画封装

    写在前面 iOS在modal 或push等操作时有默认的转场动画,但有时候我们又需要特定的转场动画效果,从iOS7开始,苹果就提供了自定义转场的API,模态推送present和dismiss.导航控制 ...

  4. iOS - 转场时 appear 与 disappear 的调用顺序探索

    不同的转场方式 A.B viewDidDisappear调用的流程不同 在A页面跳转到B页面的过程中 A 的 viewDidDisappear 方法和 B 的 viewDidAppear 谁先调用? ...

  5. 动画切换效果之push、pop、present、dismiss

    有时候页面跳转或视图切换的时候,需要做成特定的效果,常见的push.pop.present.dismiss效果如下,注意要添加代理 push默认动画效果 CATransition *transitio ...

  6. iOS - 转场动画

    苹果在 iOS7 定制了 ViewController 的切换效果 一 在iOS5和iOS6之前,ViewController的切换主要有4种 Push/Pop,NavigationViewCotnr ...

  7. iOS转场动画

    文顶顶 最怕你一生碌碌无为 还安慰自己平凡可贵 iOS开发UI篇—核心动画(转场动画和组动画) iOS开发UI篇—核心动画(转场动画和组动画) 一.转场动画简单介绍 CAAnimation的子类,用于 ...

  8. iOS 转场动画核心内容

    CATransition——转场动画 CATransition是CAAnimation的子类,用于做转场动画,能够为层提供移出屏幕和移入屏幕的动画效果.iOS比Mac OS X的转场动画效果少一点. ...

  9. iOS转场动画初探

    一般我们就用两种转场push和present present /** 1.设置代理 - (instancetype)init { self = [super init]; if (self) { se ...

  10. iOS转场弹窗、网易云音乐动效、圆环取色器、Loading效果等源码

    iOS精选源码 view controller transition and popover (控制器转场和弹窗) UITableView头部悬停+UITableView侧滑嵌套 一行代码集成时间选择 ...

随机推荐

  1. Markdown 文档测试--demo

    Editor.md hhh 换行TEST 1 2 3 a b q d HEAD TEST Smart Test ... -- 目录 (Table of Contents) [TOCM] 目录 Edit ...

  2. Codeforces Round #741 (Div. 2) 个人题解 A~D

    比赛链接:Here 1562A. The Miracle and the Sleeper 题意: 给出 \(l,r\) 求出最大化的 \(a\ mod\ b\) (\(l\le b\le b\le a ...

  3. CF(codeforces)如何保持紫名及以上?

    虽然我还是连绿名都没,但还是想学习大牛们的学习方法,加油尽早上分. 转自知乎 之前在 CF 上看到一条不错的评论 https://codeforces.com/blog/entry/66715?#co ...

  4. 区间dp专题小结

    区间DP是一类在区间上进行动态规划的最优问题,一般是根据问题设出一个表示状态的 dp,可以是二维的也可以是三维的,一般情况下为二维.然后将问题划分成两个子问题,也就是一段区间分成左右两个区间,然后将左 ...

  5. 一些 Codeforce Content 补题记录

    Codeforces Round #651 (Div. 2) 1370A. Maximum GCD 给定一个 n,求(1~n)中任意组合对的最大的公约数. 思路:如果 \(n\) 是偶数,那么最大公约 ...

  6. 多倍图切图cutterman

  7. uni-app滚动加载下一页

    https://www.bilibili.com/video/BV1BJ411W7pX?p=39

  8. Vue 大屏可视化 铺满全屏

    https://blog.csdn.net/u011097323/article/details/106728221?utm_medium=distribute.pc_aggpage_search_r ...

  9. 神经网络优化篇:详解局部最优的问题(The problem of local optima)

    局部最优的问题 在深度学习研究早期,人们总是担心优化算法会困在极差的局部最优,不过随着深度学习理论不断发展,对局部最优的理解也发生了改变.向展示一下现在怎么看待局部最优以及深度学习中的优化问题. 这是 ...

  10. TiDB的搭建与维护过程

    TiDB的搭建与维护过程 背景 总结一下TiDB的搭建以及简单维护过程. 目标: 简单快速的创建TiDB数据库,以及进行备份恢复等工作. TiDB 简介 TiDB(全称:Ti Distributed ...