这是一个简单的单一视图控制器应用程序:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
self.view.backgroundColor = [UIColor greenColor];
}
- (BOOL)shouldAutorotate
{
return YES;
}
- (NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskLandscapeRight;
}
iOS 8中的输出差异很大。
这与iOS 8与iOS 7上的UIWindow界限有什么关系。我如何获得iOS 7的行为?
答案 0 :(得分:0)
这似乎是Xcode 6或iOS 8中的一个错误。从xib切换到故事板后,问题就消失了。
答案 1 :(得分:-1)
在IOS8中,可能的方向列表应该在Info.plist文件中,方法shouldAutorotate默认返回YES。
查看下面的讨论和文档:
https://stackoverflow.com/a/24467576/3330421
当用户更改设备方向时,系统会调用此方法 根视图控制器或最顶层呈现视图上的方法 填充窗口的控制器。如果视图控制器支持 新的方向,窗口和视图控制器旋转到新的 取向。仅在视图控制器中调用此方法 shouldAutorotate方法返回YES。
重写此方法以报告视图的所有方向 控制器支持。视图控制器的默认值 支持的接口方向设置为 UIInterfaceOrientationMaskAll用于iPad的习语和 用于iPhone习语的UIInterfaceOrientationMaskAllButUpsideDown。
系统与视图控制器支持的方向相交 使用应用程序支持的方向(由Info.plist确定 文件或应用代表 application:supportedInterfaceOrientationsForWindow:method)to 确定是否旋转。