1

我有兩個視圖控制器嵌入在導航控制器中,我的第一個視圖控制器允許旋轉,而我的第二個視圖控制器應始終以縱向模式打開,例如,即使我在第一視圖控制器中處於橫向模式我想打開我的第二個人像,如何強制我的視圖控制器始終以縱向模式打開

我通過先推動segue來呈現第二個視圖控制器。

+0

的可能的複製[如何強制視圖控制器留在肖像模式?](http://stackoverflow.com/questions/16720968/how-to -force-view-controller-to-stay-in-portrait-mode) –

+0

[如何在iOS 6中強制UIViewController以Portait方向](http://stackoverflow.com/questions/12520030/how-to -force-A-的UIViewController到波泰特方位用在-IOS-6) – kb920

回答

2

你將不得不實施shouldAutorotate第二VC

你目前的第二VC(縱向)就在調用

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

選擇您的項目 - >一般,然後按照上面的圖片。

1

可以在烏爾AppDelegate類使用此方法,並與布爾VAR

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

self.isDisplayInPoratrait保持在AppDelagate集類這個變量是其中U想呈現在肖像聲明布爾變量。放置在類此方法其中U灣呈現在肖像

-(BOOL)shouldAutorotate { 
    return NO; 
} 

-(UIInterfaceOrientationMask)supportedInterfaceOrientations { 
    return UIInterfaceOrientationMaskPortrait; 
} 

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation { 
    return UIInterfaceOrientationLandscapeLeft; 
} 
相關問題