模态视图

1》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的弹出方式相同

2》Transition Style(变换效果)

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

typedef  enum {  
       UIModalTransitionStyleCoverVertical =  0 ,  
       UIModalTransitionStyleFlipHorizontal,  
       UIModalTransitionStyleCrossDissolve,  
        UIModalTransitionStylePartialCurl,  
} UIModalTransitionStyle; 

3》Delegate &  Dismiss Modal ViewController

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

原文地址:https://www.cnblogs.com/qiutangfengmian/p/6023471.html