0

ナビゲーション コントローラーに組み込まれているログイン ビュー コントローラーは、縦向きのみである必要があります。他のView Controllerのプッシュは回転できます。シナリオ: サインインした後、子ビュー コントローラーを回転させてからログアウトすると、ログイン ビュー コントローラーが横向きに表示されます。

logincontroller(縦)->回転したデバイス->childcontroller(横)->戻る->logincontroller(横)

戻ってきたときにログインコントローラーを縦向きにしたい。

4

2 に答える 2

1

ログインViewControllerにこれら2つのメソッドを入力します

- (BOOL)shouldAutorotate {
    return YES;    
}

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

- (BOOL)shouldAutorotate {
    return YES;    
}

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

あなたの子コントローラーで

于 2013-04-04T12:07:23.013 に答える
0

ログインViewControllerにこれら2つのメソッドを入力します

(BOOL)shouldAutorotate { return YES;
}

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

(BOOL)shouldAutorotate { return YES;
}

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

あなたの子コントローラーで

topcontroller shouldautorotate を呼び出し、インターフェイスの向きをサポートする、カテゴリの autorotation サブクラス化されたナビゲーション コントローラーを追加する必要があります。

#import "UINavigationController+Autorotation.h"

@implementation UINavigationController (Autorotation)
-(BOOL)shouldAutorotate
{
for (UIViewController * viewController in self.viewControllers) {
    if (![viewController isEqual:self.topViewController]) {
        [viewController shouldAutorotate];
    }
}

return [self.topViewController shouldAutorotate];

}

-(NSUInteger)supportedInterfaceOrientations
{
for (UIViewController * viewController in self.viewControllers) {
    if (![viewController isEqual:self.topViewController]) {
        [viewController supportedInterfaceOrientations];
    }
}

return [self.topViewController supportedInterfaceOrientations];

}
于 2013-04-05T05:40:16.317 に答える