【我们都爱Paul Hegarty】斯坦福IOS8公开课个人笔记42 Modal Segue(模态过渡)

简介: modal segue会占据整个屏幕,所以使用的使用一定要小心,提前做好返回的处理,使用modal segue的好处是在执行某项操作前必须,比如我们熟悉的alert和actionsheet。

modal segue会占据整个屏幕,所以使用的使用一定要小心,提前做好返回的处理,使用modal segue的好处是在执行某项操作前必须,比如我们熟悉的alert和actionsheet。
比如手机中的联系人页面,点击右上角的加号会出现一个添加联系人的页面,整个页面的划出方式就是modalsegue。通常modalsegue中的取消按钮会取消当前的操作,而确定按钮会提交当前的操作。注意modal segue生成的MVC也可以嵌套,比如增加联系人页面中的增加联系人头像按钮也是一个modal segue的MVC。
总之使用modal segue要小心,至于如何使用modal segue的问题,在连线的时候选择Modal,如果不是通过按钮调用segue,你可以在代码中直接调用performSegue方法,或者presentViewController方法。
在方法prepareForSegue中modal和其他方式没有区别。那么该如何从modal segue创建的MVC中返回呢?通常情况下整个MVC都会和某些数据做交互,不需要返回任何信息,比如新增一个联系人,如果你有需要,可以使用unwind segue进行交互,但是大部分modal MVC都只会dismiss(移除)它们自己而已。那么该如何移除呢?如果使用unwind的话在返回指定控制器后会自动移除当前的控制器。如果不适用unwind就需要主动调用dismiss了,调用下面的方法:
dismissViewControllerAnimated,接着就会返回之前的MVC(也就是使用modal segue生成MVC的MVC)。dismiss只针对当前展示给用户的MVC,在任何时候被modal segue的MVC都知道是谁弹出的自己。
关于modal segue的动画效果:我们看到使用modal segue的MVC是从下面滑出来的,这是默认的方式.CoverVertical,还有其他方式,比如
.FlipHorizontal:翻转效果,弹出的MVC与之前的MVC通过翻转交换位置。
.CrossDissolve:新的MVC淡入,旧的MVC淡出。
.PartialCurl:从底下翻出一个角展示一个新的MVC。

目录
相关文章
|
前端开发 API
【我们都爱Paul Hegarty】斯坦福IOS8公开课个人笔记4 MVC enum Tuple Dictionary
 回顾一下我们上一话中的代码: @IBAction func operate(sender: UIButton) { let operation = sender.
790 0
|
前端开发 iOS开发
【我们都爱Paul Hegarty】斯坦福IOS8公开课个人笔记3 Xcode、Auto Layout及MVC
   继续上一话中的计算器Demo,上一话讲到类必须被初始化,类中的属性也必须被初始化,所以你不能只声明而不给它一个处置,那么问题来了,我们从storyboard中拖拽的@IBOutlet为什么只有声明而不需要初始化呢,这是因为它的类型依旧是一个optional,在你初始化之前已经被赋值为nil了,这也就是为什么你不需要再初始化它的原因。
873 0
|
Unix iOS开发
【我们都爱Paul Hegarty】斯坦福IOS8公开课个人笔记1 IOS8概述
  首先感谢网易公开课和SwiftV课堂的朋友们辛苦翻译,这个系列是我学习斯坦福IOS8公开课的个人心得体会和笔记,希望能给大家带来启发。
1061 0
|
11天前
|
开发框架 前端开发 Android开发
安卓与iOS开发中的跨平台策略
在移动应用开发的战场上,安卓和iOS两大阵营各据一方。随着技术的演进,跨平台开发框架成为开发者的新宠,旨在实现一次编码、多平台部署的梦想。本文将探讨跨平台开发的优势与挑战,并分享实用的开发技巧,帮助开发者在安卓和iOS的世界中游刃有余。
|
2月前
|
Java Android开发 Swift
安卓与iOS开发对比:平台选择对项目成功的影响
【10月更文挑战第4天】在移动应用开发的世界中,选择合适的平台是至关重要的。本文将深入探讨安卓和iOS两大主流平台的开发环境、用户基础、市场份额和开发成本等方面的差异,并分析这些差异如何影响项目的最终成果。通过比较这两个平台的优势与挑战,开发者可以更好地决定哪个平台更适合他们的项目需求。
118 1
|
2天前
|
Java 调度 Android开发
安卓与iOS开发中的线程管理差异解析
在移动应用开发的广阔天地中,安卓和iOS两大平台各自拥有独特的魅力。如同东西方文化的差异,它们在处理多线程任务时也展现出不同的哲学。本文将带你穿梭于这两个平台之间,比较它们在线程管理上的核心理念、实现方式及性能考量,助你成为跨平台的编程高手。
|
4天前
|
存储 前端开发 Swift
探索iOS开发:从新手到专家的旅程
本文将带您领略iOS开发的奇妙之旅,从基础概念的理解到高级技巧的掌握,逐步深入iOS的世界。文章不仅分享技术知识,还鼓励读者在编程之路上保持好奇心和创新精神,实现个人成长与技术突破。
|
18天前
|
安全 数据处理 Swift
深入探索iOS开发中的Swift语言特性
本文旨在为开发者提供对Swift语言在iOS平台开发的深度理解,涵盖从基础语法到高级特性的全面分析。通过具体案例和代码示例,揭示Swift如何简化编程过程、提高代码效率,并促进iOS应用的创新。文章不仅适合初学者作为入门指南,也适合有经验的开发者深化对Swift语言的认识。
39 9
|
14天前
|
设计模式 Swift iOS开发
探索iOS开发:从基础到高级,打造你的第一款App
【10月更文挑战第40天】在这个数字时代,掌握移动应用开发已成为许多技术爱好者的梦想。本文将带你走进iOS开发的世界,从最基础的概念出发,逐步深入到高级功能实现,最终指导你完成自己的第一款App。无论你是编程新手还是有志于扩展技能的开发者,这篇文章都将为你提供一条清晰的学习路径。让我们一起开始这段旅程吧!