2013-11-21 99 views
6

我有一个支持设备方向的屏幕。iOS >>设备方向>>屏幕不支持颠倒

除了当我旋转设备颠倒(顶部的主页按钮)时,一切都工作正常,旋转不起作用(它卡住最后的景观设置)。

我知道需要进行更新,以支持这几个地方:

  • 在VC本身,我添加方法:

enter image description here

  • 在项目目标,我更新如下:

enter image description here

  • 在故事板VC场景,我更新如下:

enter image description here

缺少什么我在这里?

+0

Look ........ http://stackoverflow.com/a/33411646/294884 – Fattie

回答

10

你也必须允许旋转在每一个父视图控制器的当前主视图控制器所有方向。例如,如果您的视图控制器在导航控制器中,请尝试对它进行子类化并覆盖与示例中相同的方法。

编辑:作为@JordanC提到的,由于iOS的7,您可以实现UINavigationControllerDelegate方法返回定制支撑取向:

- (UIInterfaceOrientationMask)navigationControllerSupportedInterfaceOrientations:(UINavigationController *)navigationController 
+0

哇...我根本没有想到...好的赶上! –

+4

是的,我猜这只是iPhone上颠倒的需要,因为默认情况下不支持导航控制器。 – Tricertops

+0

顺便说一句,所以,如果我有一个导航堆栈上的几个VC,我希望有第一个不可旋转(而后面的那些) - 好像有一次我已经子类化UINavigationController并将其设置为可旋转,我不能将其子VC设置为不接受轮换。有什么想法吗? –

0

您是否在真实设备上测试过?

反正试试这个:

- (NSUInteger)supportedInterfaceOrientations { 
    return (UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskPortraitUpsideDown); 
} 
+0

发布的UIInterfaceOrientationMaskAll'也会覆盖这些。 – rckoenes

+0

好吧,我在真实设备上测试过它,它也有同样的问题。此外,我已经尝试过你所建议的(使用|运算符),也没有好的... –

1

由于@eGanges提到的关键点可能是子类的UITabBarController(和覆盖supportedInterfaceOrientations )如果这是你的初始视图控制器,在这种情况下,这是你应该继承的唯一控制器(当然你应该将所有支持的界面方向添加到你的应用Info.plist文件UISupportedInterfaceOrientations中)

相关问题