iOS弱網(wǎng)環(huán)境下,重復(fù)點(diǎn)擊導(dǎo)致的連續(xù)push的問題

  • 最近網(wǎng)絡(luò)環(huán)境比較差,測試APP的時(shí)候也出現(xiàn)了一些問題,例如:點(diǎn)擊button需要跳轉(zhuǎn)到另一個(gè)頁面,點(diǎn)一次沒反應(yīng),多點(diǎn)了幾次,結(jié)果就連續(xù)push好多這個(gè)頁面。
    (BaseNavigationController 繼承自UINavigationController,在所有使用導(dǎo)航欄的地方都使用BaseNavigationController,像修改返回按鈕的樣式,文字只需要在BaseNavigationController中進(jìn)行修改,所有的地方都會被修改)
  • 最后解決了這個(gè)問題,在這里記錄下,如有。

//在viewDidLoad中添加實(shí)現(xiàn)UINavigationControllerDelegate

 -(void)viewDidLoad
{

    [super viewDidLoad];
    __weak BaseNavigationController *weakSelf = self;
    if ([self respondsToSelector:@selector(interactivePopGestureRecognizer)])  {
        self.interactivePopGestureRecognizer.delegate = weakSelf;
        self.delegate = weakSelf;
    }
}
  • 實(shí)現(xiàn)協(xié)議方法
- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated
 {
  //這個(gè)方法是在當(dāng)前控制器執(zhí)行push的時(shí)候,禁止手勢右劃返回,避免出現(xiàn)crash的現(xiàn)象,(也可以不實(shí)現(xiàn)好像也沒什么影響)
   if ([self respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
      self.interactivePopGestureRecognizer.enabled = NO;
    }
//判斷上一個(gè)控制器和現(xiàn)在的控制器是不是同一個(gè),如果是,返回。如果不是push到當(dāng)前控制器,這就有效避免了同一個(gè)控制器連續(xù)push的問題
    if ([self.topViewController isMemberOfClass:[viewController class]]) {
        return;
    }

    [super pushViewController:viewController animated:animated];
}
  • 如果實(shí)現(xiàn)了剛才的協(xié)議方法,禁止右劃返回,就應(yīng)該實(shí)現(xiàn)下面的協(xié)議方法,在控制器已經(jīng)出現(xiàn)的時(shí)候,將右劃返回打開。
 - (void)navigationController:(UINavigationController *)navigationController
   didShowViewController:(UIViewController *)viewController
                animated:(BOOL)animate
{

   if ([self respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
       self.interactivePopGestureRecognizer.enabled = YES;
   }
}

希望能有幫助,看的懂。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

  • 前言的前言 唐巧前輩在微信公眾號「iOSDevTips」以及其博客上推送了我的文章后,我的 Github 各項(xiàng)指標(biāo)...
    VincentHK閱讀 5,575評論 3 44
  • *面試心聲:其實(shí)這些題本人都沒怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個(gè)offer,總結(jié)起來就是把...
    Dove_iOS閱讀 27,603評論 30 472
  • 有認(rèn)真干活嗎?! 附上瀏覽器被劫持的解決辦法 著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。...
    還在呢死胖紙閱讀 288評論 0 2
  • 我還是很喜歡你,像斜陽投向罅隙,不論朝夕;我還是很喜歡你,像云漂泊九萬里,不曾歇息;多年以后,我再也不喜歡你,像秋...
    初小初閱讀 2,296評論 2 2
  • 一年365天 只有一個(gè)生日 生日蛋糕不僅僅是愛的禮物 更是甜蜜的祝福 麥芙仕烘焙小屋 把愛與祝?;旌?讓親情、友情...
    一湫水閱讀 176評論 0 0

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