如何在iOS5中获得默认的LandscapeLeft方向?

时间:2013-01-25 07:05:37

标签: iphone ios objective-c xcode uiinterfaceorientation

很抱歉,如果这个问题重复,但我找不到相同的解决方案。 在iOS6中,如果我想为一个UIViewController设置默认方向,我只需使用:

- (BOOL)shouldAutorotate {
    return YES;
}
- (NSUInteger)supportedInterfaceOrientations{
    return UIInterfaceOrientationMaskLandscapeLeft;
}

但是如何在iOS5中做同样的事情,我测试了两个:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation {
    return (toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft);//not default
}
and
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation {
    return (toInterfaceOrientation == UIInterfaceOrientationMaskLandscapeLeft);// = return NO;
}

但是默认方向总是Portrait.Any建议?

4 个答案:

答案 0 :(得分:4)

调用以下方法,您要检查orientation.happy编码的状态: - )

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
    [self CheckForViewForOrientation:toInterfaceOrientation];
}

- (void) CheckForViewForOrientation:(UIInterfaceOrientation)orientation
{
    if (orientation == UIInterfaceOrientationPortrait || orientation == UIInterfaceOrientationPortraitUpsideDown)
    {
        //Ur lable portrait view
    }
    else if (orientation == UIInterfaceOrientationLandscapeLeft || orientation == UIInterfaceOrientationLandscapeRight)
    {
        //Ur lable for landscape view
    }
}

答案 1 :(得分:1)

如果要在整个应用程序中实现此目的,请在app.plist文件中更改支持的方向UISupportedInterfaceOrientations

答案 2 :(得分:1)

- (BOOL)shouldAutorotate {

UIInterfaceOrientation orientation = [[UIDevice currentDevice] orientation];

if (orientation==UIInterfaceOrientationPortrait) {
 // do some 

}

return YES;
}

包括支持5和6的方法

答案 3 :(得分:1)

您需要提供

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
     UIInterfaceOrientationIsLandscape(interfaceOrientation);
}

用于该单个View控制器。