在含有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;
  }
  即在最上层页面不侧滑返回的时候把的话返回手势关闭掉便可解决这个假死问题,
相关文章
相关标签/搜索