部分页面支持自动横屏

一、给UItabBarController、UINavigationController,并添加如下代码

- (BOOL)shouldAutorotate{
    
    return YES;
}

二、在appdelegate中添加一个属性_allowRotate

- (UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
    
    //   NSLog(@"方向  =============   %ld", _allowRotate);
    if ([_allowRotate isEqualToString:@"1"]) {
        return UIInterfaceOrientationMaskAll;
    }else{
        return (UIInterfaceOrientationMaskPortrait);
    }
}


// 返回是否支持设备自动旋转
- (BOOL)shouldAutorotate
{
    if ([_allowRotate isEqualToString:@"1"]) {
        return YES;
    }
    return NO;
}

三、最后在需要横屏的页面中添加如下代码

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    App_Delegate.allowRotate = @"1";
}

- (void)viewWillDisappear:(BOOL)animated{
    [super viewWillDisappear:animated];
    App_Delegate.allowRotate = @"0";
    if ([[UIDevice currentDevice] respondsToSelector:@selector(setOrientation:)]) {
        SEL selector = NSSelectorFromString(@"setOrientation:");
        NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:[UIDevice instanceMethodSignatureForSelector:selector]];
        [invocation setSelector:selector];
        [invocation setTarget:[UIDevice currentDevice]];
        int val = UIInterfaceOrientationPortrait;
        [invocation setArgument:&val atIndex:2];
        [invocation invoke];
    }
    
}

四、在Deployment Info中设置如下


屏幕快照 2018-01-09 下午1.31.42.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容