0

UIPresentationControllerのカスタム モーダル プレゼンテーションを処理するカスタム サブクラスを作成しましたUIViewController。これは期待どおりに機能していますが、画面全体をカバーしていない子ビュー コントローラー内からこのビュー コントローラーを表示しようとすると、問題が発生します。予想される動作は、ビューが表示元の子ビュー コントローラーの境界にモーダルに限定されて表示されることですが、代わりに、モーダルはルート ビュー コントローラーから全画面表示されます。

ビュー コントローラは次のように表示されます。

let vc = CustomViewController()
vc.transitioningDelegate = customTransitioningDelegate
vc.modalPresentationStyle = .custom
present(vc, animated: true, completion: nil)

内部的には、iOS がビュー スタックを上っていき、definesPresentationContexttrue に設定されたビュー コントローラーに落ち着いているように見えます。子View ControllerdefinesPresentationContextをtrueに設定すると、これは効果がないようです。ルート ビュー コントローラーは常に選択されます。

モーダルに設定modalPresentationStyleするとoverCurrentContext、実際には子ビュー コントローラーの境界に限定されて表示されますが、カスタムのトランジション デリゲート アニメーションは使用されません。

ここに欠けている単純なものがあるに違いないと思いますか?

4

0 に答える 0