![](/img/trans.png)
[英]iOS: Presenting a view controller in landscape right from a view controller supporting only portrait mode after rotating the iphone
[英]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.