繁体   English   中英

iOS7:从横向模式加载子视图控制器时,查看会说话的肖像帧

[英]iOS7 : View talking portrait frame when loading child view controller from landscape mode

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

但是,如果我在横向模式下旋转设备,然后执行doLogin,则导航到“第一个选项卡视图”,然后UI陷入混乱,因为根视图仍然采用纵向框架。

但是,这在iOS 8上效果很好。这就是UI在iOS 8上的外观(正确的UI)

在此处输入图片说明

这是UI在iOS7上的外观(错误的UI) 在此处输入图片说明

这是我的代码:

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];

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

我将以下内容添加到要添加的视图控制器的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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM