1

YTPlayerView を含むカスタム コントローラーがあり、ユーザーがビデオをクリックするとナビゲーション スタックに表示されます。iPad に Picture-in-Picture が登場するまでは、それでよかったのです。

ユーザーがプレーヤーで PiP を再生するようにした場合、戻るボタンをクリックしても (このプレーヤー コントローラーをナビゲーション スタックからポップしても)、PiP が一時停止し、ユーザーがクリックすると再生が継続されるため、プレーヤー インスタンスは破棄されないことがわかりました。再生ボタン。

これにより問題が発生します。PiP の実行中にユーザーが別のビデオをクリックすると、このコントローラーの新しいインスタンスが を介してストーリーボードから生成されinstantiateViewController(withIdentifier:)、次のメッセージが表示されてアプリがクラッシュしました。

'Application tried to present modally an active controller <UINavigationController: 0x7fe862ef82d0>.'(ショーが存在しないと呼んだことは確かです)

私がやりたいことは、現在の PiP インスタンス (存在する場合) を取得し、新しいコントローラーを表示する前に停止することです。どうすればそれを達成できますか?(PiP を無効にしたくないので)

4

0 に答える 0