如何强制iPad加载到landscaperight方向?

时间:2013-01-31 20:37:21

标签: ios objective-c uiview

我有一个支持UIDeviceOrientationPortrait和UIDeviceOrientationLandscapeLeft的iPad应用。

我确实包含了这种方法:

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

我遇到的问题是我需要在UIDeviceOrientationLandscapeLeft模式下加载,只是为了加载,因为我的UI控件将被正确设置。如何才能在加载时强制它。

我想注意的一点是,这必须是iOS 5。

4 个答案:

答案 0 :(得分:1)

即使这个答案不符合您的预期:

给自己一个帮助:强迫设备进入特定方向非常复杂。

你可以在这里搜索SO,所有工作和不工作,并在6.1而不是在6.01中工作。等等。

最快,最安全的是,修复你的代码,以便它可以在两个方向进行核心初始化。

答案 1 :(得分:1)

我最近有类似的问题,但是我想通过强制从Landscape改为Portrait,我知道在旧版本中有内置的方法,但不幸的是我们永远不知道什么时候和什么对我们有效,但我给了这个代码尝试它对我有用,但我的场景是强制从横向到纵向,这与你的场景相反,但无论如何它都有效,这里是你的场景可能的代码;

    -(NSUInteger)supportedInterfaceOrientations

{
    return UIInterfaceOrientationMaskLandscape;

}

-(void)viewWillAppear:(BOOL)animated {

    UIApplication* application = [UIApplication sharedApplication];

    if (application.statusBarOrientation != UIInterfaceOrientationLandscapeLeft)
    {
        UIViewController *c = [[UIViewController alloc]init];
        [self presentModalViewController:c animated:NO];
        [self dismissModalViewControllerAnimated:NO];
    }


    [super viewWillAppear:animated];
}
在IOS 6.1上工作的

编辑我已经添加了两个我在之前的帖子中没有添加的方法,我现在添加了所有适用于我的应用程序的方法......

- (BOOL)shouldAutorotate
{

    return NO;
}

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
    return UIInterfaceOrientationLandscapeLeft;
}

这个想法是检查状态栏orietnation并添加和解除modalViewController,它可以让我从一个方向强制到另一个方向。

答案 2 :(得分:0)

项目设置或信息文件中的更新 在iOS 6.x中,您应该覆盖supportedInterfaceOrientations。 另请尝试preferredInterfaceOrientationForPresentation

答案 3 :(得分:0)

尽管有任何应用Info.plist设置或-shouldAutorotateToInterfaceOrientation:(或-shouldAutorotate)方法覆盖,视图控制器仍以纵向方式开始,然后由iOS旋转为横向。

什么阻止您的UI布局正确设置?