0

UIDeviceOrientationPortrait と UIDeviceOrientationLandscapeLeft をサポートする iPad アプリがあります。

私はこのメソッドを含めました:

    - (BOOL)shouldAutorotateToInterfaceOrientation:        
      (UIInterfaceOrientation)interfaceOrientation
    {
        return (interfaceOrientation == UIInterfaceOrientationPortrait ||
        interfaceOrientation == UIInterfaceOrientationLandscapeLeft );
    }

私が抱えている問題は、UI コントロールが適切にセットアップされるため、ロードのためだけに UIDeviceOrientationLandscapeLeft モードでロードする必要があることです。ロード時に一度だけ強制するにはどうすればよいですか。

私が注意したいことの1つは、これは最小iOS 5でなければならないということです.

4

4 に答える 4

1

最近同様の問題が発生しましたが、強制的にランドスケープからポートレートに変更したいと思いました。古いバージョンにはメソッドが組み込まれていることはわかっていましたが、残念ながら、いつ、何が機能するかはわかりませんが、このコードを試してみました。それは私にとってはうまくいきましたが、私のシナリオは横向きから縦向きに強制することでした。これはあなたのシナリオとは逆ですが、とにかくそれはうまくいきます。これがおそらくあなたのシナリオのコードです。

    -(NSUInteger)supportedInterfaceOrientations

{
    return UIInterfaceOrientationMaskLandscape;

}

-(void)viewWillAppear:(BOOL)animated {

    UIApplication* application = [UIApplication sharedApplication];

    if (application.statusBarOrientation != UIInterfaceOrientationLandscapeLeft)
    {
        UIViewController *c = [[UIViewController alloc]init];
        [self presentModalViewController:c animated:NO];
        [self dismissModalViewControllerAnimated:NO];
    }


    [super viewWillAppear:animated];
}

IOS 6.1で動作する編集以前の投稿では追加しなかった2つのメソッドを追加しました。今では、アプリケーションで動作しているものをすべて追加しています...

- (BOOL)shouldAutorotate
{

    return NO;
}

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
    return UIInterfaceOrientationLandscapeLeft;
}

アイデアは、ステータスバーの向きを確認し、modalViewControllerを追加および削除することです。これにより、ある方向から別の方向に強制的に移動できます。

于 2013-01-31T21:51:52.613 に答える
1

この答えがあなたが期待したものではない場合でも:

デバイスを特定の向きに強制するのは非常に複雑です。

ここでSOで検索できます。すべてが機能するものと機能しないもの、および6.1で機能し、6.01では機能しません。等々。

両方の向きで正しく初期化できるようにコードを修正するのが最も速くて安全です。

于 2013-01-31T21:38:08.093 に答える
0

プロジェクト設定または情報ファイルで更新します。
iOS 6.xでは、をオーバーライドする必要がありますsupportedInterfaceOrientations。また試してみてくださいpreferredInterfaceOrientationForPresentation

于 2013-01-31T20:41:23.390 に答える
0

アプリInfo.plistの設定または-shouldAutorotateToInterfaceOrientation:(または-shouldAutorotate) メソッドのオーバーライドにもかかわらず、View Controller は縦向きで始まり、iOS によって横向きに回転されます。

UI レイアウトが適切に設定されていない原因は何ですか?

于 2013-01-31T20:52:02.127 に答える