1. ホーム
  2. ios

[解決済み] iOS 6でUIViewControllerを強制的に縦向きにする方法

2023-05-27 18:18:10

質問

このような場合 ShouldAutorotateToInterfaceOrientation は iOS 6 で非推奨となっており、私はそれを使って特定のビューを強制的に ポートレートのみ iOS 6でこれを行う正しい方法は何でしょうか? これは、私のアプリの1つの領域に対してのみで、他のすべてのビューは回転することができます。

どのように解決するのですか?

すべてのナビゲーションコントローラがトップビューコントローラを尊重するようにしたい場合は、カテゴリを使用すると、多くのクラス名を変更する必要がありません。

@implementation UINavigationController (Rotation_IOS6)

-(BOOL)shouldAutorotate
{
    return [[self.viewControllers lastObject] shouldAutorotate];
}

-(NSUInteger)supportedInterfaceOrientations
{
    return [[self.viewControllers lastObject] supportedInterfaceOrientations];
}

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
    return [[self.viewControllers lastObject] preferredInterfaceOrientationForPresentation];
}

@end

いくつかのコメントで指摘されているように、これは問題に対する手っ取り早い解決策です。より良い解決策は、UINavigationControllerのサブクラスを作成し、そこにこれらのメソッドを置くことです。サブクラスは、6 と 7 をサポートするためにも役立ちます。