0

私の tvOS アプリには、ショー セグエを介して提示される AVPlayerViewController があります。これは、警告を表示し、ビデオが見つからない場合は前のビューに戻ります。アラート コントローラーを作成して提示し、アラート アクション ハンドラーでアンワインド セグエを呼び出します。すべてが期待どおりに動作しているように見えますが、巻き戻されたビュー コントローラーの割り当てが解除されていないことがわかりました。

let noVideosAlertController = UIAlertController(title: "No Videos Configured", message: "No videos are configured for this bank. Log into the OEC and select Lobby Display to add videos to your playlist.", preferredStyle: .Alert)
let alertAction = UIAlertAction(title: "OK", style: .Default) { [weak self] (alert) in
    self?.performSegueWithIdentifier("unwindToConfig", sender: self!)
}

noVideosAlertController.addAction(alertAction)
presentViewController(noVideosAlertController, animated: true, completion: nil)

アンワインドを呼び出さずにメニューボタンを手動で押して戻ると、問題なく割り当てが解除されるため、アンワインドセグエに関する何かがプレーヤーの割り当て解除を許可していないことがわかりました。また、アンワインド セグエを次のように置き換えてみましたdismissViewControllerAnimatedが、プレーヤーを却下したように見えますが、まだ解放されていません。

4

1 に答える 1

0

ほぼ空のファイルでこれをテストした後、ロードしてアラートを表示し、アラート アクション ハンドラでアンワインドすると、正常に割り当て解除されます。viewDidDisappearこれを、クリーンアップを行うためにオーバーライドしていた AVPlayerViewController のメソッドまで追跡しました。viewWillDisappear理由はわかりませんが、それを変更して問題を修正しました。

于 2016-07-19T17:21:40.953 に答える