在含有WebView、ScrollView和TableView等的Controller中侧滑返回无效,解决侧滑返回,又遇到假死问题的解决办法

  好久没有更新过博客了,最近在优化公司软件操作体验的时候,遇到一些问题,我想大家也都会遇到,所以在此写一下,也给大家一个解决问题的参考:
  大家都知道,在iOS7之后苹果就添加了边缘侧滑返回这个功能,对于苹果软件的操作体验有很好的提升,但是这种操作在有些地方会被系统屏蔽掉,如在一个viewController中添加了scrollView或者tableView的时候。由于这些控件里面都有ScrollView,边缘侧滑返回的时候会首先触发ScrollView滚动而失效,导致侧滑手势失效,但是大部分时候我们并不需要ScrollView的横向滚动,所以这个时候有边缘侧滑返回就会很好的提升用户体验
  要解决这个问题只需要在ViewDidload中添加以下代码:
    if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
        self.navigationController.interactivePopGestureRecognizer.delegate = self;
        self.navigationController.interactivePopGestureRecognizer.enabled = YES;
    }
  此方法可以使在webView和ScrollView中的侧滑失效问题得以解决,恢复iOS系统的侧滑返回操作;优化操作体验;
          但是回到navigationController的最顶层的Controller的时候再次侧滑之后,点击某个要push页面的地方,就会造成软件假死,怎么划都没用。
          解决办法:
          回到navigationController最上层页面的时候实现以下方法:
  - (void)viewDidAppear:(BOOL)animated{
     [super viewDidAppear:animated];
      self.navigationController.interactivePopGestureRecognizer.enabled = NO;
  }
  即在最上层页面不侧滑返回的时候把的话返回手势关闭掉即可解决这个假死问题,
原文地址:https://www.cnblogs.com/guohuai-lee/p/5332013.html