我有一個使用iOS7製作的iPad項目,它在橫向模式下顯示一個視圖控制器。在這個視圖控制器上,有一個UITextField,它是屏幕上的第一個響應者,因此當用戶進入這個屏幕時,鍵盤應該被呈現出來,它就是這樣做的。然而,問題在於,在iOS 8中以縱向模式顯示視圖控制器時,鍵盤以縱向模式顯示。我如何解決此問題,以便鍵盤的方向與視圖控制器一致(它仍然以橫向模式正確顯示)?只是爲了記錄,這個視圖尤其是使用.xib文件,而不是在故事板中。試圖在橫向模式而不是縱向模式下顯示鍵盤在iOS 8中
下面是我的代碼:
MyLandscapeViewController.m
相關方法:
-(BOOL)shouldAutorotate {
return NO;
}
-(NSUInteger)supportedInterfaceOrientations{
return UIInterfaceOrientationMaskLandscape;
}
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation{
return UIInterfaceOrientationLandscapeLeft;
}
- (void)viewDidUnload {
[self setKeyboardButton:nil];
[super viewDidUnload];
}
對於視圖控制器,I創建自定義導航控制器:
MyNavigationController .m
-(BOOL)shouldAutorotate{
return [self.topViewController shouldAutorotate];
}
-(NSUInteger)supportedInterfaceOrientations{
return [self.topViewController supportedInterfaceOrientations];
}
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation{
return [self.topViewController preferredInterfaceOrientationForPresentation];
}
從我的應用程序,它被稱爲如下:
MyLandscapeViewController *myView = [[MyLandscapeViewController alloc] initWithNibName:@"MyLandscapeViewController" bundle:nil];
MyNavigationController *navigationController = [[MyNavigationController alloc] initWithRootViewController:myView];
[self.rootViewController presentViewController:navigationController animated:YES completion:nil];
我需要什麼樣的變化,使這個在iOS 8工作?
在此先感謝所有回覆的人。
你可以試試[UIViewController中attemptRotationToDeviceOrientation在viewDidAppear並設置第一個響應者在緊接本 – brendan 2014-09-26 23:28:41
感謝布蘭登您的回覆。我嘗試過,但不幸的是它沒有奏效。 – syedfa 2014-09-27 18:16:50