如何仅为一个viewController iOS执行横向禁用



我的项目有UITabbar、UınavigationBar和UIViewContoller。

-UITabbar
 —UINavigationController
   —UIViewController

问题:如何才能横向禁用一个viewController?我只想看人像,但只想看一个。

在iOS6 中禁用单个UIViewController上的自动旋转

将此添加到您的应用程序代理

- (NSUInteger) application:(UIApplication *)application     supportedInterfaceOrientationsForWindow:(UIWindow *)window {
if ([[window.rootViewController presentedViewController] isKindOfClass:[YourViewController class]])
    return UIInterfaceOrientationMaskPortrait;
else
    return UIInterfaceOrientationMaskAllButUpsideDown;
}

编辑2

我最近发现了这一点,它一直很适合我。将此代码添加到您的视图控制器中

- (NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskPortrait;
}

在您的viewWillAppear中添加

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    ///Disable orientation changes
    NSNumber *value = [NSNumber numberWithInt:UIInterfaceOrientationPortrait];
    [[UIDevice currentDevice] setValue:value forKey:@"orientation"];
}

相关内容

  • 没有找到相关文章

最新更新