这可能是因为苹果改变了管理 UIViewController 的方向的方式。在 Ios6 中 Oreintation 处理不同的是,iniOS6 shouldAutorotateToInterfaceOrientation
方法已弃用。iOS 容器(例如UINavigationController
)不会咨询其子级来确定它们是否应该自动旋转。默认情况下,应用程序和视图控制器支持的界面方向设置UIInterfaceOrientationMaskAll
为 iPad 惯用语和UIInterfaceOrientationMaskAllButUpsideDown
iPhone 惯用语。
有关相同的更多信息,您应该访问
下面的此链接,我已经制作了用于处理方向更改的类别。
所以你将不得不实现另外两种方法来管理 iOS6 中 UIViewController 的方向。
在 IOS6 中引入允许方向更改
- (BOOL)shouldAutorotate
{
return YES;
}
返回设备支持的 Oreintation 数量
- (NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskAll;
}
现在检查你得到的方向。
编辑:将此代码放置到作为根 ViewController 添加的 FirstViewController 中。这将帮助 UIViewController 确定它的方向。
@implementation UINavigationController (RotationIn_IOS6)
-(BOOL)shouldAutorotate
{
return [[self.viewControllers lastObject] shouldAutorotate];
}
-(NSUInteger)supportedInterfaceOrientations
{
return [[self.viewControllers lastObject] supportedInterfaceOrientations];
}
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
return [[self.viewControllers lastObject] preferredInterfaceOrientationForPresentation];
}
@end
我希望我会对你有所帮助。