基本タブバーテンプレートを使用して作成したiPad用タブバーアプリケーションがあります。いくつかのカスタムビューコントローラー(各タブに1つ、対応するNIBにそれぞれ1つ)を追加し、モーダルビューとして使用するNIB付きの追加のビューコントローラーも追加しました。私は、デバイスを回転させるまで、すべてがうまく動作します。ビューが回転しないのはなぜですか?
私のアプリは唯一縦向きをサポートしていますので、私はすべての私のビューコントローラでこれを持っていた:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation != UIDeviceOrientationLandscapeLeft) &&
(interfaceOrientation != UIDeviceOrientationLandscapeRight);
}
逆さにしたときただし、アプリは、シミュレータやデバイスに回転しないでしょう。私はすべての私のビューコントローラが上記のコードを持っていることを二重と三重にチェックしました。
私は全てのNIBを調べ、それらのすべてに "Rotate Subviews"が表示されていることを確認しました。 NIBの設定をデフォルトから変更したわけではありません。タブビューに表示するために必要な基本的な事項は別として、
私はこれにすべての私のビューコントローラにコードを変更してみました:
- (BOOL)shouldAutorotateToInterfaceOrientation(UIInterfaceOrientation)interfaceOrientation
{
return UIInterfaceOrientationIsPortrait(interfaceOrientation);
}
それは何の違いを作っていません。私は、すべてのView Controllerで同じメソッドが使用されていることを確かめました。他に何ができるのか分かりません。私はそれが上下逆さまに回転してはならない理由を見ることができません。
これについてのお手伝いがあれば幸いです。
ありがとうございました。つまり、別のタブバーコントローラはありません。私は、MainWindow.xibのIBでそれを持っていますが、実装ファイルがありません。だから、私はそのコントローラのshouldAutoRotateToInterfaceOrientationをどのように設定するのですか? – beev
それを作成してください。実装された唯一のメソッドがshouldAutoRotateToInterfaceOrientiationであっても。 –
IBをお持ちの場合は、どのようなクラスを割り当てましたか?デフォルト値はUITabBarControllerです。それは1つがあることを意味します。あなたはそれをサブクラス化せず、独自のタブバーコントローラを使用しませんでした。データ構造によっては、タブバーコントローラにdidReceiveMemoryWarningを実装することもできます。 –