問題です。私のアプリケーションでは非常に奇妙なエラーが発生しています。私はタブのいくつかのビューコントローラを持つUITabBarControllerを持っています。ビューコントローラでは、私はshouldAutorotateToInterfaceOrientation:
でオートローテーションを実装しましたが、次の変更を行うまでうまくいきました。UITabBarControllersのselectedIndexプロパティを設定した後にオートローテーションが無効になりました(SDKのバグ?)
タブ間で変更するために、ビューコントローラーでスワイプジェスチャーを実装しました。これは、次のコードによって実現されます。
- (void)onSwipeLeft {
int _count = [[self.tabBarController.tabBar items] count];
int i = self.view.tag - 1;
if (i < _count - 1) {
self.tabBarController.selectedIndex = (i + 1) % _count;
}
}
onSwipeRight
についても同様である。
ここでは、右または左にスワイプするまで、自動回転はになります。その後、shouldAutorotateToInterfaceOrientation:
はまったく呼び出されません。
も参照してください。 this threadで
同一の問題が記載されています。また、 のようなログメッセージが表示されることがあります。
-[UIWindow beginDisablingInterfaceAutorotation] overflow on <UIWindow: 0x1410e0; frame = (0 0; 320 480); opaque = NO; autoresize = RM+BM; layer = <CALayer: 0x141190>>. Ignoring.
これに関する他の情報はありません。This questionは同じ問題を説明しているようです。
This questionは、
popViewController:
と同様の問題を説明しているようです。このバグはSDK 3.2以来存在しています。
SDKのバグのようですが、まだ4.1にあります。誰かが回避策を見つけましたか?それは一般的なシナリオのようです。
あなたUITabViewControllerは、自動回転に準拠していますか?それは他のビューの親であるため、回転も許可する必要があります。 –
私はUITabViewControllerをサブクラス化し、 'shouldAutorotateToInterfaceOrientation:'に 'YES'を返そうとしましたが、それは助けになりませんでした。 –