2009-05-05 16 views
0

タブバーコントローラーの上にモーダルビューが表示され、タブバーコントローラーの向きが現在ポートレートモードになっています。私はモーダルビューの向きをランドスケープモード、 i使用しようとしましたUIDevice Orientationしかし、成功しません.plistにUIDeviceOrientationKeyがある場合のみ動作し、私のアプリケーション全体を横長モードにしたくありません。第2に、私はUIApplication setStatusBarOrientationを使ってみましたが、私のビューはそれに応答しません。つまり、私のデバイス(シミュレータ)のみ回転しますが、ビューはポートレートモードに留まり、UIViewのアフィン変換を使用して空のビューを作成します。iPhoneでモーダルUIViewの向きを横向きに変更する

私は以下のソリューションを使用今日まで

おかげラケッシュ

答えて

0

を助けてください:期間:トランジション文句を言わない原因 _setRotatableViewOrientationに私のアプリの新しいリリースを受け入れる

-(void)setOrientation:(UIInterfaceOrientation)orientation 
{ 
SEL rotation = @selector(_setRotatableViewOrientation:duration:); 
NSMethodSignature * methodSignature = [window methodSignatureForSelector:rotation]; 
if (methodSignature) 
{ 
    NSInvocation * ivc = [NSInvocation invocationWithMethodSignature:methodSignature]; 
    [ivc setTarget:window]; 
    [ivc setSelector:rotation]; 
    // arg0 will be self, 1 will be cmd_ (current method selector) 
    [ivc setArgument:&orientation atIndex:2]; 
    double duration = 0.4; 
    [ivc setArgument:&duration atIndex:3]; 
    [ivc invoke]; 
} 
} 

-(void)normalizeOrientation 
{ 
UIDeviceOrientation dOrientation = [UIDevice currentDevice].orientation; 

int orientation = -1; 

    switch(dOrientation) 
    { 
     case UIDeviceOrientationPortrait: 
      orientation = UIInterfaceOrientationPortrait; 
      break; 
     case UIDeviceOrientationPortraitUpsideDown: 
      orientation = UIInterfaceOrientationPortraitUpsideDown; 
      break; 
     case UIDeviceOrientationLandscapeRight: 
      orientation = UIInterfaceOrientationLandscapeLeft; 
      break; 
     case UIDeviceOrientationLandscapeLeft: 
      orientation = UIInterfaceOrientationLandscapeRight; 
      break; 
    } 

    if (orientation != -1 && orientation != tabBarController.interfaceOrientation) 
     [self setOrientation:orientation]; 
} 

が、公式のAppStoreのを:toView: はAPIの説明がありません。

ですので、商用プロジェクトで使用することに注意してください。 アップルの新しい自動APIチェッカーがあなたのアプリケーションを拒否します!

1

私はthisを使用しました。これはいくつかの調整でうまく機能します。

関連する問題