对于iOS 10及以下版本,以下代码控制了任何相关的UIViewController的方向。我已在我的部署信息中选择了竖屏、左横屏和右横屏,并在我的Info.plist中添加了以下内容:
对于我的VC,它们应该完全不旋转,我有以下代码,我已经声明,在iOS 11之前是有效的。
我已经在实际设备上测试过了,截至iOS 11,它不起作用。
更奇怪的是,在iOS 11上记录注册设备方向时告诉我该设备处于竖屏状态...当控制器以横屏模式加载时...
代码:
FYI: 不,我的设备没有旋转锁定。
- (BOOL)shouldAutorotate {
[super shouldAutorotate];
return NO;
}
- (UIInterfaceOrientationMask)supportedInterfaceOrientations {
[super supportedInterfaceOrientations];
return UIInterfaceOrientationMaskPortrait;
}
我已经在实际设备上测试过了,截至iOS 11,它不起作用。
更奇怪的是,在iOS 11上记录注册设备方向时告诉我该设备处于竖屏状态...当控制器以横屏模式加载时...
代码:
// In viewDidLoad
NSLog(@"orientation: %lu", [[UIDevice currentDevice] orientation]);
控制台输出:
2017-09-22 15:20:26.225196-0400 <APP_NAME>[2669:1628408] orientation: 1
在构建和运行应用程序之前,将设备向左或向右旋转即可发生此情况。
- 这里出现错误的原因是什么?如果有人知道,请帮忙解决。
FYI: 不,我的设备没有旋转锁定。
application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?)
方法,否则不会调用这些方法。 - Beltalowda