0

4 つの異なるビューを持つタブ バー コントローラーがあります。最近、ビューの 1 つだけに回転を組み込みたいと思いました。YESタブコントローラーの場合、すべてのサブビューがメソッドで返される必要があることをどこかで読みましたshouldAutoRotateToInterfaceOrientation:。私はこれを行い、すべてが機能しますが、すべてではなく、ビューの1 つだけを横向きモードにする必要があります。オールオアナッシングの状況でしか得られないようです。つまり、すべて回転するか、まったく回転しないかのいずれかです。

4

1 に答える 1

1

縦向きモードのみをサポートする VC にこれを追加します。

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    if (interfaceOrientation == UIDeviceOrientationPortrait ||  interfaceOrientation ==  UIDeviceOrientationPortraitUpsideDown) 
    {
        return YES;
    }
    return NO;
}

ランドスケープもサポートする VC にこれを追加します。

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {

    return YES;
}

上記は、必要ではないタブを制御するために 4 つの VC が必要であることを意味します。同様にできることは、デフォルトで NO である mainVC に追加のブール値を作成することです。次に、すべての向きをサポートする特定のビューを開くときに、そのブール値を YES に設定して、次のコードを実行します。

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {

    if (myBoolThatAllowsAllOrientations)
    {
        return YES;
    }
    if (interfaceOrientation == UIDeviceOrientationPortrait ||  interfaceOrientation ==  UIDeviceOrientationPortraitUpsideDown) 
    {
        return YES;
    }
    return NO;
}
于 2011-10-25T07:22:18.910 に答える