shouldAutorotateToInterfaceOrientation没有被称为iphone

时间:2011-07-07 17:22:51

标签: iphone

所以我试图让一些视图旋转但是方法甚至没有被调用,我很沮丧。这是方法:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return YES;
}

我也尝试过:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return ((interfaceOrientation == UIInterfaceOrientationPortrait) ||
            (interfaceOrientation == UIInterfaceOrientationLandscapeLeft) || (interfaceOrientation == UIInterfaceOrientationLandscapeRight));
}

我的info.plist看起来像这样:

enter image description here

我错过了什么?我已经查看了我在SO中找到的所有答案,但问题仍然存在。

2 个答案:

答案 0 :(得分:1)

您可能需要指定info.plist中支持的纵向方向。 (实际上也可以完全删除那些方向键)。

顺便问一下:您正在构建哪种应用?你使用标签栏或导航控制器(他们对方向改变有特定限制)?

编辑:

对于标签栏控制器,要求由它管理的所有控制器都支持给定的自动旋转方向。

答案 1 :(得分:0)

这仅适用于您自己的UIViewController的子类。对于除NO之外的所有这些值,Apple的默认实现返回UIInterfaceOrientationPortrait(显然)。因此,创建一个新文件,使其成为UIViewController的子类,转到其.m文件并将其粘贴到:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return YES; //that's enough
}

然后使用此子类作为视图控制器,旋转将起作用。