問題タブ [uipresentationcontroller]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
114 参照

ios - 子ビュー コントローラー内でカスタム UIPresentationController を使用してモーダル UIViewController を提示する

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

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

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

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

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

0 投票する
0 に答える
24 参照

ios - プレゼンターがウィンドウから削除されていないときに、カスタム UIPresentationController がプレゼンター ビューのライフサイクル メソッド (viewDidDisappear) を呼び出さないようにするにはどうすればよいですか?

カスタム トランジションを使用して、提示された VCが画面全体をカバーせず、プレゼンターのビューが削除されないモーダル ビューを提示しています。これは、システムの既定のモーダル プレゼンテーション スタイル (別名シート/カード) に非常に似ています。

システムのデフォルトのモーダル プレゼンテーション スタイルを使用している場合viewDidDisappear、プレゼンター VC で呼び出されることはありません。ただし、ビューが画面から削除されることはありませんが、viewDidDisappear呼び出すとカスタムトランジションがトリガーされます。endAppearanceTransition

システムの遷移動作を模倣するにはどうすればよいですか? カスタム トランジションでbeginAppearanceTransitionandメソッドを使用するべきではありませんか?endAppearanceTransition