0

我正在开发带有情节提要的 iOS6 应用程序,但遇到了意外的行为。我的应用程序几乎处于纵向模式,我将在除两个视图之外的所有视图中保持此方向。因此,该项目同时支持横向和纵向模式,我将导航控制器子类化为一个类别(几乎无处不在 :-)在 Appdelegate.m 和每个视图控制器实现

- (NSUInteger)supportedInterfaceOrientations{
 return UIInterfaceOrientationMaskPortrait; (landscape where needed)
}

-(BOOL)shouldAutorotate{
return YES;
}

一切似乎都运行良好,除了在横向视图到纵向视图之间的过渡(反​​之亦然?),ui的所有元素都以横向显示(想象你保持手机水平),如果你转动手机,旋转事件被触发,用户界面返回纵向,现在才锁定到这个方向。有没有办法在视图出现之前触发旋转?为什么在 ViewWillAppear 阶段不调用 shouldAutorotate ?

谢谢!

4

2 回答 2

0

删除上述两个功能并尝试它应该可以工作

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
    {
         Return YES for supported orientations

    }

如果仍然无法正常工作,请尝试更改 appDelegate

[window addSubview:nav.view];

到这个代码

 window.rootViewController=nav;
于 2013-05-31T13:38:00.090 回答
0

我发现这个在线章节非常适合解释 UIViewControllers 和旋转。

http://www.aeth.com/iOSBook/ch19.html#Rotation

这是一个大页面,向下滚动到旋转。

于 2013-06-07T07:28:47.953 回答