我有一个控制器,应该在界面(设备)方向改变的情况下旋转。我跟踪方向更改,但是我无法使用设备更改来旋转视图。
我可以为里面的视图设置动画,并切换它们的约束等,但我想使用Size类。当我在呈现控制器时切换到UIModalPresentationStyleCurrentContext它可以工作,但是我的导航和tabbar混乱,我想这样做。
可以这样做吗?
答案 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;
}
希望有人觉得这很有用。