0527.模态视图的概念以及显示、变换方式介绍

学几个单词

dissolve 
[d?‘z?lv] vi.
溶解;解散

curl 
[k??l] 
vi. 卷曲

什么是模态视图?

比如UIAlertView,它就是一个模态视图。对于模态视图和普通视图最主要的区别就是模态视图显示的时候不能对其他视图进行操作。主要用来收集或显示一些信息。

思考:弹出警告框的时候,背景视图变暗不能操作,所以说警告框就是一个模态视图。

Presentation
Style(显示方式)

对于iPhone来讲Presentation
Style始终是UIModalPresentationFullScreen模式显示Model
ViewController

对于iPad有四种显示方式,如下所示(默认全屏)

typedef
enum {

UIModalPresentationFullScreen = 0,

UIModalPresentationPageSheet,

UIModalPresentationFormSheet,

UIModalPresentationCurrentContext,

} UIModalPresentationStyle;

UIModelPresentationFullScreen弹出VC时,被弹出的视图(presented
VC)充满全屏

UIModalPresentationPageSheet弹出VC时,presented
VC的height、width和presenting
VC相同,竖屏时和UIModelPresentationFullScreen相同,横屏时未覆盖区域变暗并阻止用户点击

UIModelPresentationFromSheet弹出VC时,presented
VC的height、width均会小于presenting
VC,且presented居中显示,四周变暗

UIModalPresentationCurrentContext弹出VC时,和presented
VC的弹出方式相同

Transition
Style(变换效果)

默认的presented方式是CoverVertical(竖直覆盖),也可以设置水平翻转、交叉溶解、翻页等效果

typedef
enum {

UIModalTransitionStyleCoverVertical = 0,

UIModalTransitionStyleFlipHorizontal,

UIModalTransitionStyleCrossDissolve,

UIModalTransitionStylePartialCurl,

} UIModalTransitionStyle;

Delegate & 
Dismiss Modal
ViewController

dismissViewControllerAnimated:completion,对于这个方法的调用者最简单的是[self
dismissViewControllerAnimated:completion],如果presented
VC和presenting VC之间有数据传递的话,建议在presented
VC中使用代理方法dissmiss掉presented
VC

0527.模态视图的概念以及显示、变换方式介绍,布布扣,bubuko.com

时间: 2024-08-24 13:35:17

0527.模态视图的概念以及显示、变换方式介绍的相关文章

模态视图 push pop

导航控制器用来管理一组具有层级关系的视图控制器,进入下一个界面的方式是push,返回是pop.   (层级关系:后一个界面显示的内容依赖于前一个界面) 当没有层级关系的视图控制器之间切换时(比如:前一个界面显示的内容依赖于后一个界面).要使用模态视图,进入下一个界面的方式是present,返回是dismiss. 模态视图: - (IBAction)pressButton:(UIButton *)btn { FirstDetailViewController *firstDetailVC = [[

iOS开发 - 在SwiftUI中显示模态视图

在SwiftUI中显示模态视图 简介 这里教大家如何弹出一个简单的模态视图.分别有两个页面,ContentView和GCPresentedView,以下对应简称为A和B.我们要做的是在A视图中点击按钮跳转到B视图,然后再从B视图点击按钮返回到A视图. 步骤 在A视图中创建按钮和模态视图代码 struct ContentView: View { @State var isPresented = false var body: some View { Button(action: { self.is

UInavigationcontroller中栈的概念和模态视图的切换

模态视图切换下一view的方法:[self   presentViewController:<#(UIViewController *)#> animated:<#(BOOL)#> completion:<#^(void)completion#>]  第一个参数传入要切换的那个view,第二个参数表上是否使用动画,第三个参数是个代码块,一般设置为nil: 模态视图返回上一个view的方法: [self dismissViewControllerAnimated:YES

视图控制器、模态视图

一.什么是试图控制器? 视图控制器就是用来管理视图的加载.卸载.横屏竖屏显示等操作的控制器. 每一个界面都会由一个控制器来管理显示 ,单独的界面view需要视图控制器这个载体来管理显示. UIViewController是所有视图控制器的父类 . iOS提供了许多内置的视图控制器类,以支持标准的用户界面部分,比如导航控制器 (UINavigationController),标签栏控制器(UITabBarController),表视图控制器 (UITableViewController)等 . 每

MPMoviePlayerViewController的使用 (不直接将播放器放到主视图控制器,而是放到一个内部模态视图控制器中)

其实MPMoviePlayerController如果不作为嵌入视频来播放(例如在新闻中嵌入一个视频),通常在播放时都是占满一个屏幕的,特别是在 iPhone.iTouch上.因此从iOS3.2以后苹果也在思考既然MPMoviePlayerController在使用时通常都是将其视图 view添加到另外一个视图控制器中作为子视图,那么何不直接创建一个控制器视图内部创建一个MPMoviePlayerController属性并且默 认全屏播放,开发者在开发的时候直接使用这个视图控制器.这个内部有一个

VS2010/MFC对话框:非模态对话框的创建及显示

非模态对话框的创建及显示 上一节讲了模态对话框及其弹出过程,本节接着讲另一种对话框--非模态对话框的创建及显示. 已经说过,非模态对话框显示后,程序其他窗口仍能正常运行,可以响应用户输入,还可以相互切换.鸡啄米会将上一讲中创建的Tip模态对话框改为非模态对话框,让大家看下效果. 非模态对话框的对话框资源和对话框类 实际上,模态对话框和非模态对话框在创建对话框资源和生成对话框类上是没有区别的,所以上一讲中创建的IDD_TIP_DIALOG对话框资源和CTipDlg类都不需要修改. 创建及显示非模态

视图控制器和导航模式一(模态视图,平铺导航)

视图控制器的种类 UIViewController.用于自定义视图控制器的导航.例如,对于两个界面的跳转,我们可以用一个UIViewController来控制另外两个UIViewController. UINavigationController.导航控制器,它与UITableViewController结合使用,能够构建树形结构导航模式. UITabBarController.标签栏控制器,用于构建树标签导航模式. UIPageViewController.呈现电子书导航风格的控制器 UISp

模态视图的进入和关闭

我们切换视图, 一般使用两种方法, 一种是push和pop, 另一种则是模态推出; push和pop的方法我们使用较多, 不过这个方法却有着一定的限制, 那就是当我们未曾设置导航控制器的时候, 这个方法是无法使用的, 而模态推出则没有这个限制. 模态推出使用起来非常的简单, 它只有两个方法, 一个是显示模态视图 presentViewController:animated:completion, 一个是关闭模态视图 dismissViewControllerAnimated:completion

iOS 利用模态视图实现带黑色蒙版的底部弹窗

本demo仅适用于iOS8及以上系统. 本文将使用autolayout+storyboard来实现弹窗 第一步.storyboard创建界面 1.打开storyboard 拖一个UIViewcontroller出来,并与class相关联 2.拖出一个UIView作为弹窗视图的容器,容器里放置弹窗的内容,容器高度根据具体需求放置.容器放在最底部 3.放置一个UIButton在容器View的上方间距为0,并把UIButton设置为黑色(用于实现蒙版效果及点击空白处关闭弹窗) 4.约束.底部容器打le