在iOS 8之前,我们将下面的代码与supportedInterfaceOrientations结合使用,并使用shouldAutoRotate委托方法强制应用程序定位到任何特定的方向。 我使用下面的代码片段以编程方式将应用程序旋转到所需的方向。 首先,我正在改变状态栏的方向。 然后只是提出并立即解散模态视图将视图旋转到所需的方向。 [[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeRight animated:YES]; UIViewController *c = [[UIViewController alloc]init]; [self presentViewController:vc animated:NO completion:nil]; [self dismissViewControllerAnimated:NO completion:nil]; 但是这在iOS 8中是失败的。另外,我在堆栈溢出中看到了一些答案,人们build议我们应该始终避免从iOS 8开始使用这种方法。 更具体地说,我的应用程序是一种通用types的应用程序。 共有三个控制器。 第一视图控制器 – 它应该支持iPad中的所有方向,并且只支持iPhone中的肖像(主屏幕button)。 第二个视图控制器 – 它应该只支持所有情况下的风景权 第三个视图控制器 – 它应该只支持所有情况下的风景 我们正在使用导航控制器进行页面导航。 从第一个视图控制器,在一个button点击动作,我们推动第二个堆栈。 所以,当第二个视图控制器到达时,不pipe设备的方向如何,应用程序只能locking在横向的权利。 下面是第二个和第三个视图控制器中的shouldAutorotate和supportedInterfaceOrientations方法。 -(NSUInteger)supportedInterfaceOrientations{ return UIInterfaceOrientationMaskLandscapeRight; } -(BOOL)shouldAutorotate { return NO; } 有没有什么解决scheme这个或任何更好的方式locking视图控制器在iOS 8的特定方向。请帮助!