仅为自定义模态视图锁定旋转

时间:2013-09-11 19:46:34

标签: ios uiview uiviewcontroller

我正在使用UITabBarController,我的应用程序支持纵向和横向旋转。在启动应用程序时,我正在显示模态视图,但我需要将模态视图仅修复为纵向。我不知道怎么回事,类似的线程听到建议继承并覆盖supportedInterfaceOrientationsshouldAutorotate,控制器是UIViewController子类,模态视图是UIView子类。

相关代码:

-(BOOL)shouldAutorotate{

//here I tried to test whether the modal is still visible on the screen and return no in such case, but doesn't seems to work.
    return YES;
}

- (NSUInteger)supportedInterfaceOrientations{

    return UIInterfaceOrientationMaskAll;
}

iOS目标:5.0

1 个答案:

答案 0 :(得分:0)

方向总让我困惑,特别是从iOS5到iOS6的变化。 昨天我做了与你想要完成的完全相反的事情。我只需要一个模型视图旋转。我编辑了我的代码以满足您的需求。

首先,选择您需要的所有方向:

enter image description here

rootViewController.m中:

//iOS 6
    - (BOOL)shouldAutorotate {
        return YES;
    }

ModelViewController.m中:

// iOS5
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
{
    return ((toInterfaceOrientation == UIInterfaceOrientationPortrait);
}

// iOS6
- (BOOL)shouldAutorotate {
    return NO;
}

// iOS6
- (NSUInteger)supportedInterfaceOrientations {
    return uiinterfaceorientationmaskportrait;
}