1

私はこれが最もよくある質問であることを知っており、これを実現するためにあらゆる種類の組み合わせを試し、スタック オーバーフローに関するほとんどの投稿を確認したと信じています。

私は v1ViewController と呼ばれる UINavigationController を持っています。私がやろうとしているのは、それがユーザーに表示されるときに、縦向きまたは縦向きの上下モードで表示したいだけで、ユーザーがデバイスを回転させても横向きではありません。何もしないでください。

注:サポートされているインターフェイスの向きについて、Xcode ですべてのオプションを強調表示しました。他のビュー コントローラーの 1 つでは、横向きと縦向きの両方のモードでユーザーに何かを表示する必要がありますが、この UINav コントローラーでは縦向きモードのままにしておきます。

私が持っている iOS 5.0 用のコードは問題なく動作します。

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    // Return YES for supported orientations
    if (interfaceOrientation == UIInterfaceOrientationPortrait)
    {
        return YES;
    }
    else if (interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown)
    {
        return YES;
    }
    else
    {
        return NO;
    }
}

私が抱えている頭痛の種はiOS 6です。私が何をしようとしても、ユーザーは血まみれのものを横向きに回転させることができます(コードとスクリーンショットを参照)

// *********************
// iPhone 5 orientation support
// *********************
- (BOOL)shouldAutorotate
{

    UIInterfaceOrientation interfaceOrientation = [[UIDevice currentDevice] orientation];


    if (interfaceOrientation == UIInterfaceOrientationPortrait)
    {
        return YES;
    }
    else if (interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown)
    {
        return YES;
    }
    else
    {
        return NO;
    }
}

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
    return UIInterfaceOrientationPortrait;
}


-(NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskPortraitUpsideDown;
}

ここに画像の説明を入力 ここに画像の説明を入力

4

1 に答える 1