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