可以通过设备轮换在当前上下文(UIModalPresentationStyleOverCurrentContext)上进行模态显示的viewcontroller吗?

时间:2015-07-29 12:27:05

标签: ios uiinterfaceorientation size-classes uideviceorientation

我有一个控制器,应该在界面(设备)方向改变的情况下旋转。我跟踪方向更改,但是我无法使用设备更改来旋转视图。

我可以为里面的视图设置动画,并切换它们的约束等,但我想使用Size类。当我在呈现控制器时切换到UIModalPresentationStyleCurrentContext它可以工作,但是我的导航和tabbar混乱,我想这样做。

可以这样做吗?

1 个答案:

答案 0 :(得分:0)

好的,解决了。

我通过将其置于需要更改方向的控制器的viewDidLoad中来跟踪设备方向更改:

[[NSNotificationCenter defaultCenter] addObserver:self 
                                       selector:@selector(orientationChanged:)
                                             name:@"UIDeviceOrientationDidChangeNotification"
                                           object:nil];

然后在orientationChanged:

- (void)orientationChanged:(NSNotification *)notification{
    [RecorderViewController attemptRotationToDeviceOrientation];
}

为了让它在父控制器中工作,我添加了以下内容:

-(BOOL) shouldAutorotate {
    return true;
}

-(NSUInteger)supportedInterfaceOrientations {
    return UIInterfaceOrientationMaskAllButUpsideDown;
}

另外,对于旋转工作记录器控制器必须实现这些:

- (BOOL)shouldAutorotate {
    return true;
}




- (NSUInteger)supportedInterfaceOrientations {
    return UIInterfaceOrientationMaskAllButUpsideDown;
} 

希望有人觉得这很有用。