升级到iOS 6和RootViewController方向不正确

时间:2012-10-31 02:36:35

标签: objective-c ios ios6

我正在将旧应用程序升级到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;

 }

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我有同样的情况将我的遗留应用程序更新到iOS 6.您可以检查我的解决方案的帖子:

Rotation behaving differently on iOS6

总而言之,您需要将主窗口rootViewController属性设置为实现shouldAutorotatesupportedInterfaceOrientation的自定义导航控制器,然后瞧,它应该正常工作!