簡體   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