手勢返回引起界面假死

問題:

當A controller作為navigationController的rootcontroller時,如果在A中向右側(cè)滑動,再push到下個界面時會出現(xiàn)界面假死。原因此時導航控制器的viewControllers的count值為1,滑動時沒有上層控制器,系統(tǒng)不知如何處理,所以會出現(xiàn)假死。

解決方法:

自定義導航控制器,實現(xiàn)如下代理

- (void)viewDidLoad {
    [super viewDidLoad];
    __weak BaseNavigationViewController *weakSelf = self;
    if ([self respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
    self.interactivePopGestureRecognizer.delegate = weakSelf;
    self.delegate = weakSelf;
  }
}

- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated {
    if ( [self respondsToSelector:@selector(interactivePopGestureRecognizer)]&&animated == YES ){
    self.interactivePopGestureRecognizer.enabled = NO;
  }
    [super pushViewController:viewController animated:animated];
}

- (NSArray *)popToRootViewControllerAnimated:(BOOL)animated {
     if ( [self respondsToSelector:@selector(interactivePopGestureRecognizer)]&& animated == YES ){
      self.interactivePopGestureRecognizer.enabled = NO;
    }
      return [super popToRootViewControllerAnimated:animated];
}

- (NSArray *)popToViewController:(UIViewController *)viewController animated:(BOOL)animated {
    if( [self respondsToSelector:@selector(interactivePopGestureRecognizer)] ){
      self.interactivePopGestureRecognizer.enabled = NO;
    }
    return [super popToViewController:viewController animated:animated];
}

- (void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animate {
  if ([self respondsToSelector:@selector(interactivePopGestureRecognizer)]){
        if (navigationController.childViewControllers.count == 1) {
        self.interactivePopGestureRecognizer.enabled = NO;
         }else {
          self.interactivePopGestureRecognizer.enabled = YES;
         }
   }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,060評論 4 61
  • Swift版本點擊這里歡迎加入QQ群交流: 594119878最新更新日期:18-09-17 About A cu...
    ylgwhyh閱讀 25,993評論 7 249
  • 一早醒來刷手機時,夏之蔓被微信公眾號的繁瑣,不配合的遲鈍,頁面的異常,搞得超級火大,請教了多個群裡的多個人,而用手...
    林素兮閱讀 283評論 6 3
  • 挨打 “嘿下,小子你踩人腳了”一個一米八的大高個藐視的喊著 “哦”一個只有一米六...
    天天看凱哥小說閱讀 201評論 0 0
  • 不知不覺間已經(jīng)到了落葉遍地,大雁南行的季節(jié),與往常不同的是,我也在南行的隊伍中。 朋友圈中朋友們都開始發(fā)天氣轉(zhuǎn)涼的...
    說書客閱讀 419評論 2 1

友情鏈接更多精彩內(nèi)容