模态视图
一、概念
模态视图(ModalView)是弹出一个优先级别很高的视图,当弹出模态视图系统会中断程序正常的执行流程,一般是在现有的界面上弹出一个 view,比如登录界面,注册界面,警告信息,提示信息等。
模态视图常常用在一下几种情况:
1.需要收集用户信息。
2. 临时呈现内容或改变工作状态。
3. 改变设备的方向。
4. 显示一个新的view层级。
二、模态视图的常用属性和方法
1. presentViewController
2. modalPresentationStyle
这个属性是用来设置弹出的模态视图的风格,它是一个枚举类型,有4中风格,
其中第四中风格是继承父类的风格。要注意的是,弹出风格在iPhone和iPad上是不同的,在iPad中,这4种方法都是有效的;而在iPhone中,不管怎样设置,都只能是UIModalPresentationFullScreen风格,所以在编写代码无法在iPhone上实现其他风格时也不用感到奇怪。
3. modalTransitionStyle
modalTransitionStyle是用来设置弹出和消失模态视图时视图之间切换的动画效果。它也是一个枚举类型,有4中效果。
UIModalTransitionStyleCoverVertical
UIModalTransitionStyleFlipHorizontal
UIModalTransitionStyleCrossDissolve
UIModalTransitionStylePartialCurl
也可将模态视图看做一种实现视图切换动画效果的方式。
4. dismissViewControllerAnimated:(BOOL) completion:(void)completion
该方法和第一种方法相反,是用来使模态视图消失的方法。
下面我们通过一个例子来学些这些方法是如何实现的,并且将上小节中视图控制器出现消失的4个方法引入。
三、案例
内容:在 ViewController 上显示一个按钮PresentModal,点击该按钮显示模态视图 ModalViewController,点击模态视图上的按钮 Modaldismiss退出模态视图状态。
1、首先创建single Application 项目。
2、添加一个 ModalViewController 类,继承自 UIViewController。
3、在 AppDelegate.m 中添加
#import "ViewController.h"
4、在 ViewController.m 中添加
#import "ModalViewController.h"
5、在ModalViewController 中添加
输出结果
在控制台上显示:
四、模态视图的传值
假设我们的项目中正在实现用户注册登录信息的功能,需要用模态视图来实现,那么如何将弹出模态视图中输入的值传入到父视图中呢?在iPhone的是设计模式中有很多方法可以实现这一功能,比如通知、协议代理、KVO等等。本小节中着重讲解如何用协议代理方法将模态视图中的值传给父视图中,以实现相应的功能。
前面的章节中也介绍过协议代理设计模式的概念,在模态视图中,需要将模态视图设置为代理,委托ViewController(视图控制器类)去实现相应协议中的方法。
首先我们要在模态视图的.h文件(ModalViewController.h)中定义一个协议,用于值的传递。并用property属性创建协议的存取方法。
页面更新:2024-05-15
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号