iPadは、dismisMovieplayerviewcontrollerAnimatedの後に誤ったオリエンテーションで表示されます
質問
私のiPadアプリは、便利なものを使用して映画のフルスクリーンを表示します MPMoviePlayerViewController
クラス。私はそれをこのように提示します:
[self.hostController presentMoviePlayerViewControllerAnimated:playerViewController];
そして後で、演奏が完了したことを通知したとき、私はこのようにそれを却下します:
[self.hostController dismissMoviePlayerViewControllerAnimated];
ユーザーが映画の再生中にiPadを回転させる場合を除き、それは正常に動作します:
1- iPadは垂直方向です。私の見解は垂直です。 2-ユーザーは垂直方向で映画を開始します。プレーヤーは垂直です。 3-ユーザーはiPadを水平方向に回転させます。 4-プレーヤーは水平方向に切り替えます。ここまでは順調ですね。 5-映画が停止し、プレイヤーが却下され、私の再び現れ、iPadはまだ水平ですが、私の見解は垂直方向にとどまりました。
もちろん、ユーザーがiPadを回転させると、通常に戻ります。 iPadが回転すると、私の見解は正常に回転します。
誰かがそれに遭遇したことがありますか?簡単な修正?
ありがとう。
解決
私はこれに何度も遭遇しましたが、それはアップルのバグのように見えます(そしてそれをそのように報告しました)。
これの周りで(私が見つけた)唯一の方法は聞くことです UIDeviceOrientationDidChangeNotification
と UIApplicationDidChangeStatusBarOrientationNotification
通知。これらの通知で相対的なタイムスタンプを使用します。両方が互いに1秒以内に発生した場合、ステータスバーの変更は、メディアSDKがステータスバーの向きを変更することではなく、ユーザーの切り替えの結果であることを確認できます。次に、映画が終了したら、ビューコントローラーが風景に回転する必要があることを伝えることができます。