教你如何强制显示一个竖屏的不能侧滑返回的SFSafariViewController

强制让控制器竖屏显示

- (BOOL)shouldAutorotate
{
    return NO;
}

- (UIInterfaceOrientationMask)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskPortrait;
}

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
    return UIInterfaceOrientationPortrait;
}

// 隐藏系统状态样
- (BOOL)prefersStatusBarHidden
{
    return YES;
}

设置不让SFSafariViewController侧滑返回

Swift:

let viewController = SFSafariViewController(URL: url)  
presentViewController(viewController, animated: true) {  
  
     for view in viewController.view.subviews {  
  
          if let recognisers = view.gestureRecognizers {  
  
               for gestureRecogniser in recognisers where gestureRecogniser is UIScreenEdgePanGestureRecognizer {  
  
                    gestureRecogniser.enabled = false  
               }  
          }  
     }  
 }

OC:

 EFKRSafariViewController *safari = [[EFKRSafariViewController alloc] initWithURL:url];
    safari.closeHandler = completion;
    [self presentViewController:safari animated:YES completion:^{
        // 禁止侧滑返回,因为侧滑返回导致强制竖屏会变回横屏
        for (UIView * view in safari.view.subviews) {
            NSArray<__kindof UIGestureRecognizer *> * array = view.gestureRecognizers;
            if (array.count) {
                for (UIScreenEdgePanGestureRecognizer * sepgr in array) {
                    sepgr.enabled = NO;
                }
            }
        }
    }];

如何

创建继承SFSafariViewController的控制器,在里面添加上面的代码就可以啦!


继承SFSafariViewController.png

总结

有时候,我们在修改系统的控件属性时,总是希望想找到一个属性方法设置后,就可以达到自己想要的 UI或者逻辑,但其实,系统不可以提供那么多自定义的 API,所以,我们只能通过自己去找到想要的东西,然后去修复它,达到目的。类似的思想,比如hook。代码上也是很其妙。

参考扩展


注:本文首发于 iHTCboy's blog,如若转载,请注明来源。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,732评论 25 709
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,303评论 4 61
  • 我的啊彬要结婚了,要成为别人的老婆了,怎么办,突然感觉自己好坏,没有高兴,而是难过,那种感觉应该和失恋一样,虽...
    一定要胖10斤的瘦子阅读 764评论 0 0
  • 你有没有,特别想要好好展现自己的时候?你没有没有在一个人面前特别没有自信的时候?你有没有欣赏一个人到分不清是喜欢还...
    打着雨伞看流星阅读 362评论 0 0