停止旋转的模态UIViewController
模态UIViewController
的父级自动旋转,但是当模态VC启动时,我只希望它出现在肖像中,而不是可旋转的。 我已经试图简单地从模式VC中的shouldAutorotate
返回NO,但是没有快乐。 支持iOS 5+。
任何帮助不胜感激。
基本上,如果您在任何容器控制器 (即UINavigationController)上呈现模态控制器,则默认情况下自动旋转方法返回YES 。 所以你必须为你的UINavigation Controller创build子类并在那里弃用Autorotation。
对于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; }
这是可行的,但在这之前我会考虑三次。
作为用户
- 我启动应用程序,并在景观中使用。
- 触发事件(例如按下button)。
- 看到一个是肖像的视图。
- 旋转手机,看看肖像。
- closures模态视图。
- 再次获得景观视图。
- 需要再次旋转手机
糟糕的可用性…
你必须在新的导航控制器上显示这个新的控制器。这将解决你的问题