iOS 不勾选设置工程Landscape,实现某个界面强制横屏
2017-08-13 本文已影响0人
一只浩子
- 项目中未勾选横屏的设置,但是,在某一个页面需要横屏显示,比如播放视频、图表显示等。
- 横屏的页面实现下面几句代码,代码如下(实现左横屏),注意这个ViewCotrol必须用present的方式推出。(而且是必须present这个ViewCotrol, 不能present被导航控制器管理的ViewCotrol)
[self.navigationController presentViewController:vc animated:YES completion:nil];
- (BOOL)shouldAutorotate
{
return NO;
}
- (UIInterfaceOrientationMask)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskLandscape;
}
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
return UIInterfaceOrientationLandscapeLeft;
}
导航栏需要自己自定义哦
最后,发现横屏情况下状态栏不显示
Tips:解决这个问题,需要我们按照以下步骤操作
2.1 在plist文件中将 View controller-based status bar appearance 设置为NO
2.2 控制器中加入代码,搞定。
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];
[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationNone];