iOS
ModelPresentationStyles
サーチ…
前書き
モーダルプレゼンテーションスタイルは、あるビューコントローラから別のビューコントローラに移行するときに使用されます。このカスタマイズを実現するには2つの方法があります。 1つはコードスルー、もう1つはInterface Builder(セグを使用)です。この効果は、 modalPresentationStyle変数をUIModalPresentationStyle enumのインスタンスに設定することで実現されます。 modalPresentationStyleプロパティは、クラス変数でUIViewControllerと方法を指定するために使用されるViewController 、画面上に提示されます。
備考
アップルの次の言葉を常に覚えておいてください。
水平コンパクト環境では、モーダルビューコントローラは常にフルスクリーンで表示されます。水平な環境では、いくつかの異なるプレゼンテーションオプションがあります。
Interface Builderを使用したModalPresentationStyleの探索
これは、iOSのさまざまなModalpresentationStyleを示す非常に基本的なアプリになります。 ここにあるドキュメントによれば、 UIModalPresentationStyleには次の9つの異なる値があります。
-
fullScreen -
pageSheet -
formSheet -
currentContext -
custom -
overFullScreen -
overCurrentContext -
popover -
none
プロジェクトを設定するには、通常のiOSプロジェクトを作成し、2つのViewControllersを追加するViewControllersです。最初のViewController UIButtonをViewController 、それをTarget -> Actionメカニズムを介して2 ViewController接続します。両方とも区別するためにViewControllers 、のbackgroundプロパティ設定UIViewでViewControllerいくつかの他の色。すべてうまくいけば、Interface Builderはこれに見えるはずです。
このプロジェクトをビルドしてiPadで実行していることを確認してください(なぜiPadなのかについては、「備考」を参照)。プロジェクトの設定が完了したら、セグを選択してattributes inspector移動しattributes inspector 。あなたはこのようなものを見ることができるはずですが、
kindプロパティをPresent Modally設定します。
さて、この例では少しのコードしか必要としないので、すべての効果を見ることはできません。
fullscreenから始めましょう。このエフェクトは、[ Kind ]タブで[ Present Modally ]を選択すると、デフォルトで選択されます。ビルドして実行すると、2 ViewControllerがiPadのフルスクリーンを占有します。
次はpageSheetです。 Presentationタブからこのオプションを選択できます。このオプションでは、デバイスがポートレートモードになっているとき、2 ViewControllerはフルスクリーンに似ていますが、2 ViewControllerはデバイス幅がかなり狭いです。また、2 ViewControllerカバーされていないコンテンツも淡色ViewControllerされます。
formSheetスタイルでは、2 ViewControllerがデバイスの中央に配置され、デバイスのサイズよりもサイズが小さくなります。また、デバイスがランドスケープモードにあり、キーボードが表示されているViewControllerはViewControllerを表示するためにビューの位置が上に調整されます。
私たちが試みようとしている最後のスタイルはpopoverです。このスタイルを選択するには、[ Kind ]タブで[ Present as Popover表示]を選択します。 2 ViewControllerは小さなポップオーバー(サイズを設定できます)として表示されます。背景のコンテンツは淡色表示されます。ポップオーバーの外側にあるタップは、ポップオーバーを解除します。あなたのAttributes Inspectorは、このようなものに見えるはずですが、
Anchorは、ポップオーバーの矢印を指すUI要素です。 Directions 、あなたのポップオーバーの許可方向でAnchorで指すように。
さらに、これらの基本的なモーダルプレゼンテーションスタイルはありますが、実現するには少し複雑で、いくつかのコードが必要です。詳細は、Appleのドキュメントを参照してください。




