gpt4 book ai didi

ios - 如何在 iOS 7/8 的单个 View 上禁用横向

转载 作者:行者123 更新时间:2023-11-29 12:26:07 25 4
gpt4 key购买 nike

我在常规目标设置中为我的应用启用了横向: enabled landscape orientations

一切正常 - 该应用程序可用于所有选定的方向...

现在我想在只有一个 View 禁用横向模式。

我在特定的 View Controller 上尝试了以下操作:

- (BOOL)shouldAutorotate
{
return NO;
}


- (NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskPortrait;
}

不幸的是没有成功......


编辑:

我的应用程序的结构是:

UITabBarController
UINavigationController
UITableViewController
UIViewController

最佳答案

你是把上面的代码放在view的ViewController里还是NavigationController里?你需要把它放在导航 Controller 中,否则导航 Controller 会旋转,导致 View 也旋转。子类 UINavigationController 并覆盖 shouldAutoRotate:

- (BOOL)shouldAutorotate
{
id currentViewController = self.topViewController;

if ([currentViewController isKindOfClass:[ViewController class]])
return NO;

return YES;
}

因此,只有当显示的 View 是您不想旋转的 View 时,导航 Controller 才会旋转。

编辑

UITabBarController 内部:

- (BOOL)shouldAutorotate
{

if([self.selectedViewController isKindOfClass:[UINavigationController class]]){

UINavigationController *navigationController = (UINavigationController *) self.selectedViewController;
id currentViewController = navigationController.topViewController;

if ([currentViewController isKindOfClass:[ViewController class]])
return NO;
}
}
return YES;
}

关于ios - 如何在 iOS 7/8 的单个 View 上禁用横向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29052478/

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