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のドキュメントを参照してください。