2012-05-25 89 views
1

我的应用程序有一个UINavigationController,它不支持旋转。不过,我想在导航控制器的顶部显示一个应该支持旋转的模式视图控制器。这可能吗?我尝试在视图控制器上覆盖shouldAutorotateToInterfaceOrientation,该视图控制器以模态方式显示,但似乎不起作用。只支持模态UIViewController方向

+0

是否尝试该[自我presentModalViewController:yourViewController动画:YES>];这将在您的导航控制器的顶部。现在yourViewController的shouldAutorotateToInterfaceOrientation应该返回YES。 –

回答

1

我认为,除了显示模式地返回YES视图控制器的shouldAutorotateToInterfaceOrientation,你的导航控制器的shouldAutorotateToInterfaceOrientation应该覆盖,以返回YES当模式视图控制器显示,和NO否则。

0

你需要确保你的设备生成设备方位的通知(UIDeviceOrientationDidChangeNotification):

确保:

generatesDeviceOrientationNotifications设置为true

从Apple文档:

“的窗口对象执行与改变当前方向有关的许多工作,但是,它与根视图控制器一起工作来确定方向是否改变应该会发生什么,如果是的话,还应该调用哪些其他方法来应对变化。如果这个控制器是一个容器,它可能会依赖一个孩子来决定是否应该发生方向。“

所以,如果你的根视图控制器(UINavigationController?)不支持旋转,那么这可能会被设置为false,当你的应用程序启动在这种情况下,你需要重新打开它在适当的时候:

UIDevice myDevice = [UIDevice currentDevice]; 
[myDevice beginGeneratingDeviceOrientationNotifications];