iOS:阻止切换视图方向?

时间:2012-10-16 23:01:38

标签: iphone ios uiview orientation

在我的应用程序的构建设置中,我检查了所有支持的方向(除了颠倒)。

然而,当我启动应用程序时,某些不打算在Portrait中显示的视图将自动旋转并切断视图的一半。我不希望这些视图旋转。

我该如何防止这种情况?香港专业教育学院尝试使用:

-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
if(interfaceOrientation == UIInterfaceOrientationLandscapeLeft)
    return YES;
if(interfaceOrientation == UIInterfaceOrientationLandscapeRight)
    return YES;

return (interfaceOrientation == UIInterfaceOrientationLandscapeRight);
}

但设备仍然希望尽可能转动人像。任何帮助都会很棒。

3 个答案:

答案 0 :(得分:0)

此方法已弃用,不会在iOS 6中调用。有关详细信息,请参阅Apple的文档或关于新方法的关于SO的一千个问题之一。

答案 1 :(得分:0)

您不想在导航或标签栏中嵌入旋转视图吗?如果是这样,我也面临同样的问题。您需要将一个类分配给选项卡栏/导航栏,并将ios 6的新方法覆盖为:

-(BOOL)shouldAutoRotate
{
return NO;
}

如果这是您的问题,请告诉我。我还必须使用NSNotificationCenter实现方向更改,以允许在我的一个子视图上旋转。如果这是你想要的,我会发布如何。

让我知道!

答案 2 :(得分:0)

shouldAutorotateToInterfaceOrientation已弃用。新的替换是shouldAutoRotate。为了在返回shouldAutoRotate的值之前在接口方向之间进行描述,请使用UIViewControllers的interfaceOrientation属性。例如,你可以这样:

-(BOOL)shouldAutoRotate{
    if (self.interfaceOrientation == UIInterfaceOrientationPortrait){
        return YES;
    }
    else {
        return NO;
    }
}