如何调整UIViewControllerWrapperView的方向(在IOS7中)?

时间:2013-11-23 13:08:46

标签: uiviewcontroller ios7 orientation

背景:该应用程序是仅在Landscape中运行的iPad应用程序。将应用程序升级到Xcode 5并在IOS7模拟器中运行时,我注意到屏幕右侧的某些按钮未完全激活。即只有按钮左侧的一小部分是可点击的。

观察:在IOS6和IOS7模拟器中运行相同的源代码,并使用REVEAL工具查看视图层次结构,我可以看到UIViewControllerWrapperView的维度(我的顶级视图的父级)控制器)是IOS6的景观(1024x768),但是IOS7的肖像。

我试图找到一种方法将UIViewControllerWrapperView的框架设置为正确的尺寸。在视图控制器的viewDidLoad方法中,我尝试获取对self.view.superview的引用,但它返回nil。

任何人都可以解释; a)为什么UIViewControllerWrapperView的框架在IOS7而不是IOS6中运行时方向错误,更重要的是b)如何使其正确?

1 个答案:

答案 0 :(得分:7)

您使用的是UITabBarController吗?我们正在完全相同的问题,并通过在UITabBarController上添加它来实现它:

- (void)viewDidLayoutSubviews
{
    // fix for iOS7 bug in UITabBarController
    self.selectedViewController.view.superview.frame = self.view.bounds;
}

为什么呢? check this answer