【发布时间】:2014-08-19 06:07:57
【问题描述】:
在 iOS 7 中我们说:
// ViewController1:
-(NSUInteger)supportedInterfaceOrientations {
return UIInterfaceOrientationMaskLandscape;
}
-(BOOL)shouldAutorotate {
return YES;
}
// ViewController2, presented by modal segue from button in ViewController1
-(NSUInteger)supportedInterfaceOrientations {
return UIInterfaceOrientationMaskPortrait;
}
-(BOOL)shouldAutorotate {
return YES;
}
结果是应用在视图控制器 1 中以横向显示,在视图控制器 2 中以纵向显示。
该代码在 iOS 7 中运行良好,包括 Xcode 6 中的 iOS 7 模拟器。但在 iOS 8 中不再运行。有两个问题:
View Controller 1 的视图以横向显示,但模拟器没有自动旋转(可能只是一个模拟器错误)并且(这是非常重要的部分)视图没有自动调整大小,所以它是屏幕太窄(右侧有一大块黑色区域)。
View Controller 2 的视图与 View Controller 1 的视图显示方向相同(横向,而非纵向)。
因此视图控制器视图不会自动调整大小以填满屏幕,并且呈现的视图控制器支持的方向也不会得到尊重。
那么我们现在应该怎么做呢?它与特征集合有关吗?具有首选的内容大小?手动设置状态栏方向?
【问题讨论】:
-
我想我遇到了同样的问题,并在这里发布了我的答案:stackoverflow.com/a/25745389/640850
标签: ios8