[iOS] APP开发中 单一页面需要横屏

两种方法,分别是:

第一种: 在继承根控制器的子类里 重写方法 (以下举例为NavigationController, TabBarController只需要找到对应的VC对象即可)

// 哪些页面支持自动转屏
- (BOOL)shouldAutorotate
{
    // ViewController 设置为支持自动转屏
    if ([self.topViewController isKindOfClass:[ViewController class]]) {
        return YES;
    }
    return NO;
}

// 支持旋转屏幕的方向
- (UIInterfaceOrientationMask)supportedInterfaceOrientations
{
    // ViewController设置支持旋转的方向
    if ([self.topViewController isKindOfClass:[ViewController class]]) {
        return UIInterfaceOrientationMaskAllButUpsideDown;
    }else {
        return UIInterfaceOrientationMaskPortrait;
    }
    return UIInterfaceOrientationMaskPortrait;
}

第二种:直接在需要设置的VC里重写方法

// 支持设备自动旋转
- (BOOL)shouldAutorotate {
    return YES;
}

// 支持横竖屏显示
- (NSUInteger)supportedInterfaceOrientations {
    return UIInterfaceOrientationMaskAll;
}

注意:如果你window的根控制器是一个NavigationController, 需要在子类里令VC调用重写的方法 并用这个子类根控制器创建实例

- (BOOL)shouldAutorotate {
    return [self.viewControllers.lastObject shouldAutorotate];
}

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

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation {
    return [self.viewControllers.lastObject preferredInterfaceOrientationForPresentation];
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容