4

modalUIViewController的父级自动旋转,但是当 modal VC 启动时,我只希望它以纵向出现而不是可旋转的。我尝试shouldAutorotate在模态VC中简单地从...返回NO,但没有任何乐趣。支持iOS 5+。

非常感谢任何帮助。

4

3 回答 3

11

基本上,如果您在任何容器控制器(即 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;
}
于 2012-12-14T13:34:07.300 回答
0

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

作为用户;

  • 我启动应用程序并横向使用。
  • 触发事件(例如按下按钮)。
  • 看到一个纵向的视图。
  • 旋转手机并纵向查看。
  • 关闭模态视图。
  • 再次获得风景。
  • 需要再次旋转手机

不好用...

于 2012-12-14T10:48:26.757 回答
0

您必须在新的导航控制器上展示该新控制器。这将解决您的问题

于 2012-12-14T12:57:58.077 回答