【发布时间】:2014-09-12 19:37:39
【问题描述】:
在 iOS 7 和更早版本中,我可以像这样在 viewDidLayoutSubviews 中进行 UI 更改:
- (void)viewDidLayoutSubviews {
[super viewDidLayoutSubviews];
if ( UIInterfaceOrientationIsLandscape(self.interfaceOrientation) ) {
//update views for landscape
}
else {
//update views for portrait
}
}
我仍然可以在 iOS 8 except 在其他视图控制器提供的视图控制器中执行此操作。当视图控制器由另一个视图控制器呈现时,这不起作用,因为self.interfaceOrientation 属性在呈现的视图控制器中不正确。它不反映当前方向,而是设备旋转之前的方向。
如果在 iPad 上呈现视图控制器并将 modalPresentationStyle 设置为 UIModalPresentationPageSheet,则不会出现此问题。换句话说,只有在呈现全屏视图控制器时才会出现问题。
有什么建议吗?
【问题讨论】:
标签: ios objective-c uiviewcontroller ios8 uiinterfaceorientation