码迷,mamicode.com
首页 > 移动开发 > 详细

iOS9横屏竖屏设置

时间:2016-05-12 15:44:14      阅读:177      评论:0      收藏:0      [点我收藏+]

标签:

公司App里面有个需求,即所有界面都是竖屏,且不允许横屏切换,唯独有一个播放视频的界面允许横屏,大家都知道视频播放适配最大的播放屏幕那样是最好的。从网上多方查找资料,查到了这么一篇文章:
  1. 最终,根据此需求处理如下: 首先,确保App本身应该允许转屏切换:
    技术分享

  2. 我的App里面UITabBarController是根视图控制器,所以首先创建一个UITabBarController的子类,并设定允许转屏:
    (这些要放在根视图控制器里面, 如果你的应用根视图是UINavigationController, 就放在那里面就好)

#pragma mark 转屏方法重写
-(UIInterfaceOrientationMask)supportedInterfaceOrientations
{
    return [self.viewControllers.firstObject supportedInterfaceOrientations];
}

-(BOOL)shouldAutorotate{
    return self.viewControllers.firstObject.shouldAutorotate;
}
  1. 接着,我的tabbarController里面每个子控制器又都是UINavigationController进行界面push切换的,所以首先创建一个UINavigationController的子类,并设定允许转屏:
//self.topViewController是当前导航显示的UIViewController,这样就可以控制每个UIViewController所支持的方向啦!

-(BOOL)shouldAutorotate{

    return [self.topViewController shouldAutorotate];

}

- (UIInterfaceOrientationMask)supportedInterfaceOrientations {

    return [self.topViewController supportedInterfaceOrientations];

}
  1. 在你想转屏切换的ViewController上可以照这样重写(允许左右横屏以及竖屏):
- (BOOL)shouldAutorotate {
    return NO;
}

- (UIInterfaceOrientationMask)supportedInterfaceOrientations {
    return UIInterfaceOrientationMaskPortrait;
}
  1. 到视频播放界面要设置为横屏啦(我的视频播放只要横屏就好^_^)
// 是否支持屏幕旋转
- (BOOL)shouldAutorotate {

    return NO;
}

- (UIInterfaceOrientationMask)supportedInterfaceOrientations {
    return UIInterfaceOrientationMaskLandscape;
}

-(UIInterfaceOrientation)preferredInterfaceOrientationForPresentation {
    return UIInterfaceOrientationLandscapeRight;
}

注意:跳转到播放器要使用模态进来, 用Push会报错
[self presentViewController:playerVC animated:YES completion:nil];

iOS9横屏竖屏设置

标签:

原文地址:http://blog.csdn.net/qq_22157341/article/details/51365249

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!