在当前上下文 (UIModalPresentationStyleOverCurrentContext) 上模态呈现的 viewcontroller 能否随设备旋转?
Can a viewcontroller presented modally over current context (UIModalPresentationStyleOverCurrentContext) be rotated with device?
我有一个控制器,它应该随着界面(设备)方向的改变而旋转。我跟踪方向变化,但是我无法随着设备方向的变化来旋转视图。
我可以为内部视图设置动画,并切换它们的约束等,但我想为此使用 Size 类。当我在呈现控制器时切换到 UIModalPresentationStyleCurrentContext 时它可以工作,但会弄乱我的导航和标签栏,我想这样做。
这样可以吗?
好的,解决了。
我通过将其放在需要更改方向的控制器的 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;
}
希望有人觉得这有用。
我有一个控制器,它应该随着界面(设备)方向的改变而旋转。我跟踪方向变化,但是我无法随着设备方向的变化来旋转视图。
我可以为内部视图设置动画,并切换它们的约束等,但我想为此使用 Size 类。当我在呈现控制器时切换到 UIModalPresentationStyleCurrentContext 时它可以工作,但会弄乱我的导航和标签栏,我想这样做。
这样可以吗?
好的,解决了。
我通过将其放在需要更改方向的控制器的 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;
}
希望有人觉得这有用。