iOS 在只支持竖屏的情况下,强制横屏出现的bug

https://segmentfault.com/q/10...
采用这个答案提供的方法,
AppDelegate添加了一个属性

@property (nonatomic, assign) UIInterfaceOrientationMask orientationMask;

在竖屏页面添加button,点击后present一个控制器,横屏展示

- (void)buttonClick {
    LandscapeViewController *vc = [[LandscapeViewController alloc]init];
    [self presentViewController:vc animated:YES completion:nil];
}

在横屏VC里 LandscapeViewController.m (背景红色)

- (void)viewDidLoad {
    [super viewDidLoad];
    self.view.backgroundColor = [UIColor redColor];
    [_MAppDelegate setOrientationMask:UIInterfaceOrientationMaskLandscapeRight];
}

- (void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
    [_MAppDelegate setOrientationMask:UIInterfaceOrientationMaskPortrait];
    [self dismissViewControllerAnimated:YES completion:nil];
}

在iOS10,和iOS11 上时,每一次启动,第一次点击按钮进入横屏,有小概率横屏失败?效果如下:
红色的是横屏控制器的View
clipboard.png

demo在这,https://github.com/CoderYLZha...

用 一楼的回答解决了上面的问题,但是发现由横屏到竖屏后,在竖屏侧滑返回出现新的bug,
我更新到demo上了

阅读 4.7k
1 个回答

没看源码,这是原来的一个参照思路,你试试。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏