UINavigationController 方向

Posted

技术标签:

【中文标题】UINavigationController 方向【英文标题】:UINavigationController Orientation 【发布时间】:2013-01-28 10:59:09 【问题描述】:

我有 UINavigationController 和几个视图控制器。 这是他们的名单: 主 -> 专辑 -> 图片

现在在第一个和第二个(主要和专辑)中,我希望 UINavigationController 不会旋转(仅纵向),而在第三个(图像)中,它可以旋转。

我已经为 UINavigationController 创建了类别:

-(BOOL)shouldAutorotate 
    if ([self.topViewController isKindOfClass:[MWPhotoBrowser class]]) 
        return YES;
    
    return NO;


-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation 
    if ([self.topViewController isKindOfClass:[MWPhotoBrowser class]]) 
        return YES;
    
    return NO;


- (NSUInteger)supportedInterfaceOrientations 
    return UIInterfaceOrientationMaskAll;

现在我的问题是,当我推动图像视图控制器并旋转设备(视图控制器旋转)并按回此处(专辑)时,视图控制器旋转到并且无法旋转回纵向。

顺便说一句:我注意到它只发生在装有 ios 6 和 iPhone 5 的设备上

【问题讨论】:

看看我的这个答案会对你有所帮助:***.com/questions/14547134/… 【参考方案1】:

您是否尝试过包含以下方法但为您的视图控制器返回正确的值?

- (NSUInteger)supportedInterfaceOrientations

return UIInterfaceOrientationMaskPortraitUpsideDown;

【讨论】:

以上是关于UINavigationController 方向的主要内容,如果未能解决你的问题,请参考以下文章

从 UINavigationController 弹出视图会改变设备方向

UINavigationController 上的 UIPageViewController 在更改方向后不会重新布局其子视图控制器

如何使用 UINavigationController (Swift 2.0 iOS 9) 强制设置横向方向

对于UINavigationController和UIViewController,在swift 4中禁用屏幕方向

在不继承 UINavigationController 的情况下以编程方式更改 ViewController 的方向

使用 UINavigationController iOS 6 弹回初始视图控制器时方向更改