1

ナビゲーションコントローラに2つのビューコントローラが組み込まれています。最初のビューコントローラは回転できますが、2番目のビューコントローラは常にポートレートモードで開く必要があります私は最初のビューコントローラで風景モードです。私はポートレートでのみ2番目のビューを開きます。View Controllerをポートレートモードで常に開くようにする方法

最初からsegueを押して2番目のビューコントローラを表示します。

+0

の可能性のある重複[ポートレートモードに滞在するビューコントローラを強制する方法?](http://stackoverflow.com/questions/16720968/how-to肖像に提示するワンクラスでこのメソッドを配置-force-view-portrait-in-portrait-mode) –

+0

[iOS 6でUIViewControllerをポートレート向きに強制する方法](http://stackoverflow.com/questions/12520030/how-to) -force-a-uiviewcontroller-to-portait-orientation-in-ios-6) – kb920

答えて

2

あなたは二VC(肖像画)を提示する直前に呼び出して二VC

shouldAutorotateを実装する必要があります

if([UIDevice currentDevice].orientation == UIDeviceOrientationLandscapeLeft || [UIDevice currentDevice].orientation == UIDeviceOrientationLandscapeRight) { 
     [[UIDevice currentDevice] setValue:[NSNumber numberWithInteger: UIInterfaceOrientationPortrait] forKey:@"orientation"]; 
} 
0

解決策1:カスタムUINavigationControllerのサブクラスを作成し、このように、これらのメソッドをオーバーライドします:

@interface LockedNavigationViewController() 

@end 

@implementation LockedNavigationViewController 

-(BOOL)shouldAutorotate { 
    return UIInterfaceOrientationMaskPortrait; 
} 

#if __IPHONE_OS_VERSION_MAX_ALLOWED < 90000 
- (NSUInteger)supportedInterfaceOrientations 
#else 
- (UIInterfaceOrientationMask)supportedInterfaceOrientations 
#endif 
{ 
    return UIInterfaceOrientationMaskPortrait; 
} 

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation { 
    return UIInterfaceOrientationPortrait; 
} 

@end 
0

enter image description here

プロジェクトを選択 - > generalを選択し、上記のイメージに従います。

1

あなたがウルAppDelegateクラスでこのメソッドを使用してブールVAR

-(NSUInteger) application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window { 
    if(self.isDisplayInPoratrait){ 
     return UIInterfaceOrientationMaskPortrait; 
    else 
     // return ur required orientation 
} 

self.isDisplayInPoratraitを維持することができますがuは肖像画の中に存在するクラスでAppDelagate設定し、この変数そうで宣言されたブール変数です。 uは

-(BOOL)shouldAutorotate { 
    return NO; 
} 

-(UIInterfaceOrientationMask)supportedInterfaceOrientations { 
    return UIInterfaceOrientationMaskPortrait; 
} 

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation { 
    return UIInterfaceOrientationLandscapeLeft; 
}