停止转动模态的UIViewController(Stop a modal UIViewControl

2019-07-05 07:21发布

该模式UIViewController的父自动旋转,但是当模式是VC了,我只希望它出现在纵向和不可旋转。 我试图简单地从返回NO shouldAutorotate ......在模态VC,但没有喜悦。 支持iOS 5以上。

任何帮助极大的赞赏。

Answer 1:

基本上,如果你对任何货柜控制器呈现模态控制器(即UINavigationController的),它在默认情况下自转方法的返回YES。 所以,你必须让子类为您UINavigation控制器,并弃用自转存在。

对于iOS 5中使用的方法:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation {

    return (toInterfaceOrientation == UIInterfaceOrientationPortrait) : self.enableRotations;
}

对于iOS 6的:

- (NSUInteger)supportedInterfaceOrientations {

    switch ([UIDevice currentDevice].userInterfaceIdiom) {

        case UIUserInterfaceIdiomPad:   return UIInterfaceOrientationMaskAll;
        case UIUserInterfaceIdiomPhone: return UIInterfaceOrientationMaskPortrait;
    }
}

- (BOOL)shouldAutorotate {

    return NO;
}


Answer 2:

它可以是可行的,但在这之前我会三思而后行。

作为用户;

  • 我启动应用程序,并在景观使用。
  • 触发事件(例如,按下按钮)。
  • 看到一个观点是肖像。
  • 旋转手机,并期待在肖像。
  • 关闭模式的看法。
  • 再次获得横向视图。
  • 需要再次旋转手机

坏的可用性...



Answer 3:

你必须提交新的控制器上的一个新的导航controller.This将解决你的问题



文章来源: Stop a modal UIViewController from rotating