首页 文章

从B VIewcontroller(固定人像)返回到A,A未自动旋转到横向模式(设备处于横向模式)

提问于
浏览
0

我将设备保持在横向模式并移动到第二个视图控制器,它只支持纵向模式 . 当从第二视图控制器返回时(支持所有方向),第一视图控制器不会自动旋转到横向模式 .

如果我做了下面的代码,那么它在IOS6中的工作 . 但不适合IOS7 .

if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone){
    [UIViewController attemptRotationToDeviceOrientation];
}

在IOS7中viewController正在旋转,但状态栏没有旋转

2 回答

  • 0

    在VC A中实现以下内容:

    -(BOOL)shouldAutorotate
    {
        return NO;
    }
    
    -(NSUInteger)supportedInterfaceOrientations
    {
        return UIInterfaceOrientationMaskLandscape;
    }
    
    - (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
    {
        return UIInterfaceOrientationLandscapeRight;
    }
    
  • 0

    AMayes提出的解决方案并不完全正确 .

    UIViewController文档声明如下:

    通常,系统仅在窗口的根视图控制器或呈现的视图控制器上调用此方法以填充整个屏幕;子视图控制器使用由父视图控制器为其提供的窗口部分,不再直接参与有关支持哪些旋转的决策 .

    因此,将以下代码放在UINavigationController子类中:

    -(NSUInteger)supportedInterfaceOrientations
    {
        return UIInterfaceOrientationMaskLandscape;
    }
    
    - (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
    {
        return UIInterfaceOrientationLandscapeRight;
    }
    

相关问题