iOS7:从横向模式加载子视图控制器时查看说话纵向框架

时间:2014-11-04 10:01:19

标签: ios

我正在使用UITabBarViewController创建iPad Universal应用程序。当我的登录屏幕处于纵向模式时,从登录视图导航到第一个选项卡屏幕。 FirstView控制器正确加载,旋转效果很好。

但是,如果我在横向模式下旋转设备,那么doLogin我导航到第一个选项卡视图,然后用户视图中的UI混乱,仍然采用纵向框架。

然而,这在iOS 8上运行良好。 这就是UI在iOS 8(正确的用户界面)上的外观

enter image description here

这是UI在iOS7上的外观(不正确的用户界面) enter image description here

这是我的代码:

tabBarController = [[UITabBarController alloc]init];

FirstViewController *vc = [[FirstViewController alloc] initWithNibName:@"FirstViewController" bundle:nil];

NSArray *viewControllersArray = [[NSArray alloc] initWithObjects:vc, nil];
[tabBarController setViewControllers:viewControllersArray animated:YES];

[self addChildViewController:tabBarController];
[self.view addSubview:tabBarController.view];

我在LoginViewController上使用此代码。 LoginViewController是我的RootViewController 在didFinishLaunchWithOption中,我使用下面的方法将LoginController设置为rootViewcontroller 码:       [self.window setRootViewController:self.loginviewController];

1 个答案:

答案 0 :(得分:0)

我也有类似的问题,我将我的视图添加到横向导航控制器,但视图框架大小是纵向。我不知道是否有更好的办法比我最终做的更好,但这是我的解决方案。

我将以下内容放在要添加的视图控制器的viewDidLoad中。

// Hack because iOS 7 was loading in portrait instead of landscape
if ([[[UIDevice currentDevice] systemVersion] floatValue] < 8)
    self.view.frame = CGRectMake(self.view.frame.origin.x, self.view.frame.origin.y, self.view.frame.size.height, self.view.frame.size.width);