學幾個單詞
dissolve [dɪ'zɒlv] vi.溶解;解散
curl [kɜːl] vi. 捲曲
什麼是模態視圖?
比如UIAlertView,它就是一個模態視圖。對於模態視圖和普通視圖最主要的區別就是模態視圖顯示的時候不能對其他視圖進行操作。主要用來收集或顯示一些信息。
思考:彈出警告框的時候,背景視圖變暗不能操作,所以說警告框就是一個模態視圖。
PresentationStyle(顯示方式)
對於iPhone來講PresentationStyle始終是UIModalPresentationFullScreen模式顯示ModelViewController
對於iPad有四種顯示方式,如下所示(默認全屏)
typedefenum {
UIModalPresentationFullScreen = 0,
UIModalPresentationPageSheet,
UIModalPresentationFormSheet,
UIModalPresentationCurrentContext,
} UIModalPresentationStyle;
UIModelPresentationFullScreen彈出VC時,被彈出的視圖(presentedVC)充滿全屏
UIModalPresentationPageSheet彈出VC時,presentedVC的height、width和presenting VC相同,豎屏時和UIModelPresentationFullScreen相同,橫屏時未覆蓋區域變暗並阻止用戶點擊
UIModelPresentationFromSheet彈出VC時,presentedVC的height、width均會小於presentingVC,且presented居中顯示,四周變暗
UIModalPresentationCurrentContext彈出VC時,和presentedVC的彈出方式相同
TransitionStyle(變換效果)
默認的presented方式是CoverVertical(豎直覆蓋),也可以設置水平翻轉、交叉溶解、翻頁等效果
typedefenum {
UIModalTransitionStyleCoverVertical = 0,
UIModalTransitionStyleFlipHorizontal,
UIModalTransitionStyleCrossDissolve,
UIModalTransitionStylePartialCurl,
} UIModalTransitionStyle;
Delegate & Dismiss ModalViewController
dismissViewControllerAnimated:completion,對於這個方法的調用者最簡單的是[selfdismissViewControllerAnimated:completion],如果presentedVC和presenting VC之間有數據傳遞的話,建議在presentedVC中使用代理方法dissmiss掉presented VC