0

タブバーコントローラーの上部にモーダルビューが表示され、タブバーコントローラーの方向が表示され、モーダルビューは現在ポートレートモードになっています。モーダルビューの方向をランドスケープモードに変更するだけで済みます。UIDeviceOrientationを使用してみましたが、成功しませんでした。 .plistにUIDeviceOrientationKeyがある場合にのみ機能し、アプリケーション全体をランドスケープモードにしたくありません。次に、UIApplication setStatusBarOrientationを使用しようとしましたが、ビューが応答しません。つまり、デバイス(シミュレーター)のみが回転しますが、ビューはポートレートモードのままです。UIViewでアフィン変換を使用すると、XIBを介してビューが作成されます。

助けてください

ありがとうRakesh

4

2 に答える 2

1

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

于 2010-01-21T11:05:18.223 に答える
0

今日まで、私は次のソリューションを使用していました。

-(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];
}

しかし、_setRotatableViewOrientation:duration:transition:toView:がドキュメント化されたAPIではないため、公式のAppStoreは私のアプリの新しいリリースを受け入れません。

したがって、商用プロジェクトでの使用に注意してください。Appleの新しい自動APIチェッカーはあなたのアプリを拒否します!

于 2009-12-08T11:19:27.193 に答える