25
如何在iOS 8中强制视图控制器定向?
在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中失败了。此外,我在堆栈溢出中看到了一些答案,有人建议我们应该从iOS 8开始始终避免这种方法。 更具体地说,我的应用程序是通用类型的应用程序。共有三个控制器。 First View控制器 -它应支持iPad中的所有方向,并且仅支持iPhone中的纵向(按下主页按钮)。 Second View控制器 -在所有情况下都应仅支持横向景观 Third View控制器 -在所有情况下都仅支持横向景观 我们正在使用导航控制器进行页面导航。从第一个视图控制器的按钮单击动作开始,我们将第二个推入堆栈。因此,当第二个视图控制器到达时,无论设备方向如何,应用程序都应仅锁定横向视图。 下面是我shouldAutorotate和supportedInterfaceOrientations第二个和第三个视图控制器中的方法。 -(NSUInteger)supportedInterfaceOrientations{ return UIInterfaceOrientationMaskLandscapeRight; } -(BOOL)shouldAutorotate { return NO; } 有没有针对此问题的解决方案或将视图控制器锁定在iOS 8特定方向的更好方法,请帮忙!