美文网首页JC专题
[iOS] APP开发中 单一页面需要横屏

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

作者: 两年如歌 | 来源:发表于2016-04-05 19:32 被阅读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];
    }
    

    相关文章

      网友评论

        本文标题:[iOS] APP开发中 单一页面需要横屏

        本文链接:https://www.haomeiwen.com/subject/zrdplttx.html