いくつかのタブを備えたタブバーのセットアップがあります。最初の tabitem は、縦向きにレイアウトされた xib をプログラムでロードする viewcontroller です。ユーザーが電話を回転させると、横向きに配置されたモーダル ビューが自動的に表示されます。このメカニズムはうまく機能します。
デバイスを縦向きモードに回転すると、モーダル ビューが閉じられ、下部にタブバーが表示されます。デバイスが回転したときに、スクロールビューや Web ビューなどの他のタブバー項目の一部を横向きに自動回転させたいと考えています。
私は RotateTabBarViewController というクラスを実装しました。これには shouldAutorotateToInterfaceOrientation メソッドが含まれており、selectedViewController で同じメソッドの値をチェックします。したがって、webview に shouldAutorotateToInterfaceOrientation メソッドが true を返す場合、ビューは期待どおりに回転します。
これが問題です。回転したビューが横向きモードの場合でも、タブバーは表示されたままです。つまり、ユーザーは最初の項目のアイコンをクリックできます。最初のアイテムがクリックされると、横向きモードであることが認識され、モーダル ビューが再び自動的に読み込まれます。唯一の問題は、ビューが画面上でずれていることです。
モーダル ビューをあるべき場所に再配置するソリューションを探しています。再調整が必要なのはメイン ビューなのか、モーダル ビューだけなのかわかりません。
次のリンクには、コンセプトのデモが含まれています。
http://www.veryniceindustries.com/rotation_demo.zip
- デバイスを回転させて縦向きにします
- アイテム 2 を選択
- デバイスを横向きに回転します (このビューを再調整するには助けが必要です)
- 項目 1 を選択します (モーダルはランドスケープに表示されますが、オフセットされています)
どんな助けでも大歓迎です。
ベスト、ハウィー