iPadモーダルビュー(modalPresentationStyle)のサイズについて | iPhoneアプリをつくりまくる。

iPhoneアプリをつくりまくる。

iPhoneアプリ・iPadアプリを作っています。

iPadでのモーダルビューで表示される各タイプのサイズについて。
何かの処理中でモーダル表示中のビューコントローラー全体をマスクしたいことがたまにあり、その度にサイズを忘れて調べるのでメモしておく。

iPadでのモーダルビューは3種類+1種類指定可能。
+1種類は(UIModalPresentationCurrentContext:親ビューコントローラーと同じものという指定)
詳細は「iPadヒューマンインターフェースガイドライン」の項「モーダルビュー」を参照。

モーダルビューの種類
モーダルビューの種類はビューコントローラのmodalPresentationStyleプロパティにそれぞれ下記のように指定する事が可能。

・フルスクリーン(UIModalPresentationFullScreenを指定する)
 文字通り、フルスクリーンサイズ。

・Page Sheet(UIModalPresentationPageSheetを指定する)
 幅が768ポイント、高さは「現在の高さ」

・Form Sheet(UIModalPresentationFormSheet)
 540×620ポイント。

【注意】
モーダルビューの種類の指定はモーダルビューとして表示されるビューコントローラにに指定する。

presentModalViewControllerのパラメータで指定するビューコンとローラーにpresentModalViewControllerを呼び出す前に指定しておく。
※これをいつも忘れて混乱してしまう。

例① 普通にモーダルビュー表示(Form Sheet指定)

UIViewController *vcModal = [[UIViewController alloc] init];
[vcModal setModalPresentationStyle:UIModalPresentationPageSheet];
[self presentModalViewController:vcModal animated:YES];
[vcModal release];


例② ナビゲーションバー付きのモーダルビュー表示

UIViewController *vcModal = [[UIViewController alloc] init];
UINavigationController *ncModalNavigation = [[UINavigationController alloc] initWithRootViewController:vcModal];
[ncModalNavigation setModalPresentationStyle:UIModalPresentationPageSheet];
[self presentModalViewController:ncModalNavigation animated:YES];
[ncModalNavigation release];
[vcModal release];