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

时间:2013-12-26 07:06:11

标签: ios iphone ios7 uiinterfaceorientation

我将设备置于横向模式并移至第二个视图控制器,该控制器仅支持纵向模式。当从第二视图控制器返回时(支持所有方向),第一视图控制器不会自动旋转到横向模式。

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

if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone){
    [UIViewController attemptRotationToDeviceOrientation];
}
在IOS7中,

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

2 个答案:

答案 0 :(得分:0)

在VC A中实施以下内容:

-(BOOL)shouldAutorotate
{
    return NO;
}

-(NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskLandscape;
}

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
    return UIInterfaceOrientationLandscapeRight;
}

答案 1 :(得分:0)

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

UIViewController文档声明如下:

  

通常,系统仅在根视图上调用此方法   窗口的控制器或视图控制器呈现填充   整个屏幕;子视图控制器使用窗口的一部分   由他们的父视图控制器提供给他们,不再   直接参与有关支持轮换的决定。

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

-(NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskLandscape;
}

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
    return UIInterfaceOrientationLandscapeRight;
}