2011-01-19 4 views
1

問題です。私のアプリケーションでは非常に奇妙なエラーが発生しています。私はタブのいくつかのビューコントローラを持つ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にあります。誰かが回避策を見つけましたか?それは一般的なシナリオのようです。

+0

あなたUITabViewControllerは、自動回転に準拠していますか?それは他のビューの親であるため、回転も許可する必要があります。 –

+0

私はUITabViewControllerをサブクラス化し、 'shouldAutorotateToInterfaceOrientation:'に 'YES'を返そうとしましたが、それは助けになりませんでした。 –

答えて

0

これは以前考えたことがあります。

UIWindow+ensureAutorotation.hを作成します。

#import <UIKit/UIKit.h> 

@interface UIWindow (ensureAutorotation) 

- (void)beginDisablingInterfaceAutorotation; 
- (void)endDisablingInterfaceAutorotation; 

@end 

そしてUIWindow+ensureAutorotation.m

#import "UIWindow+ensureAutorotation.h" 

@implementation UIWindow (ensureAutorotation) 

- (void)beginDisablingInterfaceAutorotation {} 
- (void)endDisablingInterfaceAutorotation{} 

@end 

// of course this can be added as a simple category, rather than .h .m files 
+0

これが解決策である理由を説明できますか...空の方法ですか? –

+0

元のメソッドの機能を無視して、拡張機能内のUIKitメソッドを上書きするため、副次的な影響が発生する可能性があります。これを行うことはお勧めできません。さらに、拡張機能の中でそれを行うことは、実装が実際に行われるかどうかわからないため、非常に不明です。同じ方法を上書きする複数の拡張機能を提供するとしたら、どうなるでしょうか? – Lio

関連する問題