ほとんどの場合、私は物事をよく理解しています。1 つの小さな問題に頭を悩ませているようには見えません。この問題の概要をできる限り詳しく説明します。現時点では、質問をするためにコードを投稿する必要はないと思いますが、お気軽に質問してください。
ほとんどのアプリケーションと同様に、私のアプリケーションはデフォルトで縦表示になっています。メインのインタラクション領域では、ユーザーがデバイスを回転させたときに、主要なものを変更するコードを提供する必要はありません。代わりに、ビュー スタックの上に新しいビューを配置するからです。これはうまく機能し、ユーザーがデバイスを横向きモードで操作できる 2 つの方法のうちの 1 つです。
2 つ目は、UIWebView を使用してアプリ内から YouTube ビデオを再生する (このメイン インタラクション エリアから) モーダルに表示された画面を使用するもので、これもうまく機能します。
この問題は、ユーザーが横向きモードでモーダル ビュー コントローラーを閉じると発生します。ユーザーがランドスケープ モード用に調整されたコンテンツでメイン インタラクション エリアに戻り、このメイン インタラクション エリアのビュー コントローラーから通常呼び出されるデリゲート メソッドが呼び出されない場合、このデリゲート メソッドを使用してランドスケープを正常に変更します。 :
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration { }
正確に何が起こっているかのスクリーンショットを含めます。
ポートレート モードのメイン インタラクション エリアのスクリーンショット。
ランドスケープ モードでのメイン インタラクション エリアのスクリーンショット。
ランドスケープ モードでモーダル ビュー コントローラーを閉じてメインのインタラクション エリアに戻った後のメインのインタラクション エリアのスクリーンショット (コンテンツが中央に配置され、上部が切り取られ、伸びていないことに注意してください (私が要求しているわけではありません)それを行う)
理想的には、この状況では、ランドス ケープ モードからメイン画面に戻り、スクリーンショット 3 ではなくスクリーンショット 2 をユーザーに表示したいと考えています。
助言がありますか?繰り返しますが、コードを投稿できてうれしいです。前もって感謝します。
編集
答え:
非常に単純なので、ランドスケープ ビューをビュー スタックの一番上に配置するコードを独自のメソッド内で使用しました。次に、そのメソッドを、前に休ませたデリゲート メソッドと ViewWillAppear の両方で呼び出します。