苹果将sdk从5.1升级到6.0之后在屏幕旋转的支持上做了一些修改。需要注意的为以下3点:
1 plist文件:首先必须在plist文件中Supported interface orientations项进行对应方向的支持。iphone和ipad分别为两项。如下图
需要在rootviewcontroller中响应以下2个方法:
-(BOOL)shouldAutorotate { return YES; } -(NSUInteger)supportedInterfaceOrientations { return UIInterfaceOrientationMaskAll;//该参数决定旋转支持的方向 }
要使用(UIInterfaceOrientation)interfaceOrientation 可以用[self preferredInterfaceOrientationForPresentation]代替
在iOS4.0之前从windows窗口载入页面都用的是
[self.window addsubview:myviewcontroller]
后来支持
self.windows.rootviewcontroller = myviewcontroller;
iOS6种必须改为后者才能响应2中提到的2个方法。
以上3步便可以完成对iOS6下屏幕旋转问题的解决。
另外如果你的项目使用了Three20中 TTNavigator + TTURLMap的框架,也可以使用上面3点解决。
主要是把TTBaseNavigator 中rootviewcontroller 改成要点3中提到的方法。其他按部就班