17

私のアプリは自動回転できますが、ビューの 1 つを縦向きモードでのみ表示する必要があり、これを実現する方法がわかりません。

私はこれを(とりわけ)試しましたが、問題のビューはまだ回転しています:

//  ViewController.m

-(BOOL)shouldAutorotate
{            
    return NO;
}

- (NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskPortrait;
}

誰かが私が間違っていることを親切に指摘できますか? ありがとう。

-編集-

iOS6.1用です

4

3 に答える 3

31

が含まれる場合は、とUINavigationControllerでカテゴリを作成します。 UINavigationControlleroverride supportedInterfaceOrientations

#import "UINavigationController+Orientation.h"

@implementation UINavigationController (Orientation)

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

- (BOOL)shouldAutorotate {
    return YES;
}

@end  

現在、iOS コンテナー (UINavigationController など) は、自動回転する必要があるかどうかを判断するために、子に相談しません。

カテゴリの作成方法
1. 新しいファイルを追加します (目的の c-カテゴリは cocoa touch の下にあります)
2. Category: UINavigationController のオリエンテーション
3. 上記のコードをに追加しますUINavigationController+Orientation.m

于 2013-02-21T14:15:48.103 に答える