我有一个为iOS8编译的应用程序.应用程序设置为仅允许在项目设置中进行纵向定向.应用程序的视图不会通过设计旋转到景观.在iOS7中,当您将设备旋转到横向时,键盘不会旋转.这是我想要的行为.
我已经在物理iPhone 6 Plus上测试了这一点,以确认问题.还通过模拟器在iPhone 5上测试.任何想法如何解决这个问题?
潜在的固定
我不记得我为什么这样做,但是我有一些启动代码在应用程序启动时执行:
d.window.rootViewController = tabBarController;
其中tabBarController是应用程序的顶级选项卡栏控制器.删除此引导代码可以解决问题.
建议调查
虽然这在iOS的以前版本中没有出现,但看起来iOS8的行为有所不同.我建议您检查所有的引导代码.您可能需要尝试一个示例项目,并添加一些位,直到找到凶手,因为在我的情况下很难跟踪.以下提供的两个答案是修复症状而不是原因,所以我没有将它们标记为正确.
解决方法
我也有类似的问题,并发现iOS8之前的键盘方向与状态栏的方向有关,但不幸的是在iOS8中,键盘和状态栏方向是分开的.虽然这不利于解决您的问题,但希望能提供一些关于为什么发生这种情况的信息.
编辑:
尝试以下代码 – 它为我工作.根据允许的方向,您将不得不改变您显然翻转设备的方式.
// Note that UIInterfaceOrientationLandscapeLeft is equal to UIDeviceOrientationLandscapeRight (and vice versa). // This is because rotating the device to the left requires rotating the content to the right. [[UIDevice currentDevice] setValue:[NSNumber numberWithInteger:UIDeviceOrientationLandscapeLeft] forKey:@"orientation"];