JC专题

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

2016-04-05  本文已影响266人  两年如歌

两种方法,分别是:

第一种: 在继承根控制器的子类里 重写方法 (以下举例为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];
}
上一篇下一篇

猜你喜欢

热点阅读