2014-09-27 86 views
0

我正在开发使用两个视图控制器A和B的ios应用程序。当B仅处于纵向模式时,A支持两种方向横向和纵向。我的目标是当我从A导航到B时,B viewcontroller始终只处于肖像模式。我在导航控制器中对B viewcontroller进行了限制。视图控制器之间在方向更改时导航

- (BOOL)shouldAutorotate 

{ 
    _navigation = (MBNavigationController *) self.frontViewController; 

    id currentViewController = [_navigation visibleViewController]; 

    if ([currentViewController isKindOfClass:[MBViewController class]]) 
     return NO; 

    return YES; 
} 

当A纵向时,我导航到B一切正常。但是当A处于横向模式并且我也这样做时,B控制器视图的一部分就是场景。请帮助我找到正确的解决方案。

回答

0

一个可能的解决方案是目前在B的viewController与另一navigationController其中

// sysversion>=ios6 
- (BOOL)shouldAutorotate 
{ 
    return NO; 
} 
// sysversion<=ios5 
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    return NO; 
} 

- (NSUInteger)supportedInterfaceOrientations 
{ 
    return UIInterfaceOrientationMaskPortrait; 
} 
+0

你能详细解释一下吗?在这种情况下应该有什么故事板树? – user3816018 2014-09-28 08:29:51

+0

两个导航控制器。导航控制器的根视图控制器是您的视图控制器。两个根视图控制器是B视图控制器。分别设置'shouldAutorotate' – dopcn 2014-09-28 09:26:18

相关问题