gpt4 book ai didi

ios - 即使我阻止横向旋转,屏幕也会旋转

转载 作者:行者123 更新时间:2023-11-29 02:27:47 35 4
gpt4 key购买 nike

我想阻止某些 UIViewController 的横向方向。我阅读了很多不同的东西来管理它,但我没有找到一个很好的解决方案。每次,方向都不会被阻挡,即使它应该被阻挡。

我有以下代码来阻止没有横向旋转的 UIViewController 中的横向方向:

- (BOOL)shouldAutorotate {
return NO;
}

- (NSUInteger)supportedInterfaceOrientations {
return UIInterfaceOrientationMaskPortrait;
}

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation {
return UIInterfaceOrientationPortrait;
}

即使如此, View 仍会横向旋转。

我错过了什么吗?

最佳答案

UIViewController 是否包含在 UINavigationController 中?还是 TabBarController?在这种情况下,UIViewController 只是将该调用传递给 UINavigationController,您将必须子类化 UINavigationController 并在那里实现这些方法,并检查哪些方法导航 Controller 堆栈中的 View Controller 是想要旋转的 View Controller ,并且只允许旋转您想要的 View Controller 。

这是我在一个项目中的做法:

- (NSUInteger)supportedInterfaceOrientations
{
if ([self.visibleViewController class] == [MyViewController class]) {
return UIInterfaceOrientationMaskAllButUpsideDown;
} else {
return UIInterfaceOrientationMaskPortrait;
}
}

您也可以尝试从导航 Controller 询问有问题的 UIViewController,但由于某些原因,这对我来说效果不佳。

- (NSUInteger)supportedInterfaceOrientations
{
return [[self.viewControllers lastObject] supportedInterfaceOrientations];
}

您也可以对其余方法使用相同的方法。

关于ios - 即使我阻止横向旋转,屏幕也会旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27291113/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com