我的应用程序以纵向模式运行,但我想以横向模式显示一个屏幕,因为它是一个图表。我将如何添加到我的uiviewcontroller以强制它进入横向模式?
答案 0 :(得分:14)
我很抱歉,但这个答案很短:如果您使用的是UINavigationController,则不能。因此@jer给出的答案是错误的。 Apple文档声明:
UITabBarController或UINavigationController中的所有子视图控制器都不同意公共方向集。
我最近在赏金上回答了这个问题,我的应用程序在此过程中被拒绝了。请在此处阅读:How to constrain autorotation to a single orientation for some views, while allowing all orientations on others?
你拥有的唯一解决方案是丢弃UINavigationController并用你自己的东西重写它。
答案 1 :(得分:3)
通过以模态方式显示和取消视图控制器,您可以强制方向。将动画设置为“NO”,您可以在用户没有意识到它发生的情况下执行此操作。
您可以在Is there a documented way to set the iPhone orientation?
上详细了解这个Josh的答案我认为这有点像黑客攻击,但我已成功使用此前提实现代码强制任何设备方向。
答案 2 :(得分:2)
您实施shouldAutorotateToInterfaceOrientation:
并仅为UIInterfaceOrientationIsLandscape(param)
返回YES,其中param
是您为方法声明的参数。
这将支持横向左侧和横向右侧,而不是仅将您锁定到一个横向方向。