UINavigationController中的UIViewController不按预期旋转

时间:2011-04-22 23:27:03

标签: iphone cocoa-touch uiviewcontroller uinavigationcontroller autorotate

我有一个UINavigationController,根UIViewController只支持Portrait方向。当用户按下按钮时,第二个UIViewController被加载并被推入堆栈,这个视图控制器,我们称之为secondViewController,只支持横向。

通常会发生的事情是接口在转换到secondViewController期间旋转,但是尽管shouldAutorotateToInterfaceOrientation:在secondViewController上调用,但这不会发生。一旦我在显示secondViewController时手动倾斜设备,它就会按预期旋转,当切换回第一个UIViewController时,它会按原样旋转回肖像。

为了测试第一个UIViewController的允许接口Orientations是否对进程有任何影响,我设置了一个返回YES;然而,对于那里的所有接口,问题仍然存在。我还阅读了technical Q&A on the subject但是根据这个文档,一切都应该没问题,UINavigationController是窗口的唯一子视图。

我完全以编程方式创建secondViewController(覆盖loadView),并且在其他应用程序之前使用此特定案例。有没有人知道我可能做错了什么?

1 个答案:

答案 0 :(得分:1)

显然,更改不会自动发生,以下是必要的“推送”:

- (void) viewWillAppear:(BOOL)animated {
    [[UIDevice currentDevice] setOrientation:UIInterfaceOrientationLandscapeRight];
}