iOS SDKに付属しているアクションシートなど、画面全体に表示されないカスタムモーダルダイアログが必要になることがよくあります。このダイアログは、インターフェイスの回転など、いくつかのトリッキーなシナリオと条件を処理する必要があり、ユーザーの選択を処理するための多くのコードを運ぶこともよくあります。したがって、ダイアログを通常のビューとコントローラーの組み合わせとして構築し、UIで一級市民のように機能させることが非常に望ましいようです。
システムモーダルコントローラーAPI(presentModalViewController:animated:
)は、この点で非常に制限されています。たとえば、モーダルコントローラーの下にコントローラーを非表示にすることを要求し、事前定義されたアニメーションを使用するように強制します。
コントローラー包含APIは、画面上で一度に複数のビューを可能にし、それぞれが異なるコントローラーによって制御されるため、非常に有望に見えます。(これは、通常のビューコントローラーの上にあるモーダルダイアログの状況です。)しかし、私が知っているUINavigationController
ように、標準のコンテナーコントローラー(のような)との相互作用は不安定です。
フルスクリーンではないモーダルダイアログを通常のビューコントローラーとして維持し、UIの他の部分とうまく連携させることを可能にする実用的なテクニックを持っている人はいますか?