我正在将旧应用程序升级到iOS 6,它仅支持横向。当我在iPhone模拟器或我的iPhone 4上运行应用程序时,根视图控制器的方向是纵向模式,当它应该是横向右侧时。但是,键盘最初处于正确的位置。此外,当我旋转设备时,键盘会保持其初始方向,而根视图永远不会改变方向。
在项目设置的Supported Interface Orientations部分中,选择Landscape Left和Landscape Right按钮。在pList文件中,为初始界面方向设置了横向(右主页按钮),并为支持的界面方向设置了横向(右主页按钮)和横向(左主页按钮)。
此外,在根视图控制器中,我已替换此代码:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// Return YES for supported orientations.
BOOL rotate = NO;
if (interfaceOrientation == UIInterfaceOrientationLandscapeLeft || interfaceOrientation == UIInterfaceOrientationLandscapeRight)
rotate = YES;
return rotate;
}
使用此代码:
- (NSUInteger)supportedInterfaceOrientations {
return UIInterfaceOrientationMaskLandscape;
}
- (BOOL)shouldAutorotate {
return YES;
}
有什么想法吗?
答案 0 :(得分:1)
我有同样的情况将我的遗留应用程序更新到iOS 6.您可以检查我的解决方案的帖子:
Rotation behaving differently on iOS6
总而言之,您需要将主窗口rootViewController
属性设置为实现shouldAutorotate
和supportedInterfaceOrientation
的自定义导航控制器,然后瞧,它应该正常工作!