Ios6 模态UINavigationController方向错误

Ios6 模态UINavigationController方向错误,ios6,uinavigationcontroller,rotation,presentmodalviewcontroller,Ios6,Uinavigationcontroller,Rotation,Presentmodalviewcontroller,我有一个iPad应用程序支持所有方向的设置。在应用程序的一部分中,点击触发需要导航控制器的模态视图控制器的显示。所以我基本上在做: UIViewController *myViewController = [[UIViewController alloc] initWithNibName:@"MyView" bundle:nil]; UINavigationController *nav = [[UINavigationController alloc] initWithRootViewCont

我有一个iPad应用程序支持所有方向的设置。在应用程序的一部分中,点击触发需要导航控制器的模态视图控制器的显示。所以我基本上在做:

UIViewController *myViewController = [[UIViewController alloc] initWithNibName:@"MyView" bundle:nil];
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:myViewController];
NSLog(@"%d", nav.interfaceOrientation);

[window.rootViewController presentModalViewController:nav animated:YES];
当iPad处于纵向(主页按钮)状态时,此功能可以正常工作。在任何其他方向上,模式视图始终从“主页”按钮以纵向显示,而不是从设备的当前底部显示

如果我完全跳过导航控制器,仅以模式显示
myViewController
,它将正确显示

因此,我尝试将UINavigationViewController子类化,并显式重写
shouldAutorotate:
supportedInterfaceOrientations:
方法,但这没有任何效果。有趣的是,如果我覆盖
视图将出现
方法,并记录
接口方向
属性的值,那么即使从上面的代码访问时返回正确的值,它也总是返回
1

我还检查了Info.plist是否支持所有方向


那么,还有什么事情会导致这种行为呢?非常感谢您的帮助。

尝试在导航控制器的子类中实现preferredInterfaceOrientationForPresentation

以下几点对我很有用:

-(UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
    return self.interfaceOrientation;
}

尝试在导航控制器的子类中实现preferredInterfaceOrientationForPresentation

以下几点对我很有用:

-(UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
    return self.interfaceOrientation;
}