0

このトピックに関するほぼすべての投稿に目を通したと思います。したがって、読むまでまだ質問を殺さないでください。この質問は、iOS 7 の XCode 5 に関するものです。

横向きモードと縦向きモードの両方をサポートするアプリがあります。私のプロジェクトの展開情報では、すべての方向がチェックされます。

アプリの起動時に表示

  • v1ViewController (常にランドスケープ モードで開く必要があります)

ユーザーがボタンを押すと、

  • v3ViewController (常に縦向きモードで開く必要があります)

私が抱えている問題は、アプリが起動し、iPhoneを縦向きモードで持っていると、これが表示されることです。

ここに画像の説明を入力

iPhoneを横向きモードに切り替えると、これが表示されます。

ここに画像の説明を入力

v1ViewController に常に横向きモードを表示させるにはどうすればよいですか?

これは私が今持っているコードです。

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    if (interfaceOrientation == UIInterfaceOrientationLandscapeLeft || interfaceOrientation == UIInterfaceOrientationLandscapeRight)
    {
        return YES;
    }
    else 
    {
        return NO;
    }

}

しかし、これを追加すると、表示する最初の写真のようにビューが常に開き、回転は効果がありません。

- (BOOL)shouldAutorotate
{

    UIInterfaceOrientation interfaceOrientation = [[UIApplication sharedApplication] statusBarOrientation];

    NSLog(@"interfaceOrientation: %d ...", interfaceOrientation);



    if (interfaceOrientation == UIInterfaceOrientationLandscapeLeft)
    {
        return YES;
    }
    else if (interfaceOrientation == UIInterfaceOrientationLandscapeRight)
    {
        return YES;
    }
    else
    {
        return NO;
    }

}

 - (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
 {
    return UIInterfaceOrientationLandscapeLeft;
 }

 -(NSUInteger)supportedInterfaceOrientations
 {
     return UIInterfaceOrientationLandscapeLeft | UIInterfaceOrientationLandscapeRight;
 }
4

1 に答える 1

4

私がどのようにそれを機能させたかに興味がある人のために、これは私がやったことです.

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return UIInterfaceOrientationIsLandscape(interfaceOrientation);
}

-(NSUInteger)supportedInterfaceOrientations
{

    return UIInterfaceOrientationMaskLandscape;
}

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
    return UIInterfaceOrientationLandscapeLeft;
}
于 2013-09-24T18:41:07.300 に答える