禁用iPhone的旋转但不是iPad

问题描述:

实现此目的的最佳方式是什么?我使用通用尺寸类的XIB(iphone和ipad使用相同的XIB),但我只想锁定iPhone的旋转角度。禁用iPhone的旋转但不是iPad

试试这个:

对于低于iOS 6的版本:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation { 
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) 
     { 
      return NO; 
     } 
     else 
     { 
      return YES; 
     } 
} 

对于iOS 6+

- (BOOL)shouldAutorotate 
{ 
    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) 
    { 
     return NO; 
    } 
    else 
    { 
     return YES; 
    } 
} 
+0

这种方法的折旧,很遗憾。 – 2014-11-04 11:52:44

+0

编辑答案。使用' - (布尔)shouldAutorotate' – 2014-11-04 11:58:22

+0

我在UINavigationController上做了一个类别,它的工作原理,谢谢:)虽然小问题,我的alertViews仍然旋转doh。 – 2014-11-04 13:37:33

可能方向的名单应该在Info.plist文件,如果需要,可以为Ipad和Iphone定义不同的值。看看下面的讨论:

https://stackoverflow.com/a/24467576/3330421