iOS視圖push的時(shí)候偶爾卡住,push不過去問題

遇到一個(gè)詭異的問題,我的根視圖是Tabbar+navigation,在點(diǎn)擊push到另外頁面的時(shí)候,頁面卡住了,導(dǎo)航欄的標(biāo)題是下個(gè)頁面的,view還是當(dāng)前的,然后我按home鍵,在進(jìn)入到應(yīng)用,頁面又正常了。
原因是手勢pop的問題. 當(dāng)處在navi的根控制器時(shí)候, 做一個(gè)側(cè)滑pop的操作, 看起來沒任何變化, 但是再次push其它控制器時(shí)候就會出現(xiàn)上述問題了。這種情況是會出現(xiàn)在我們自定義的navigation中,因?yàn)槔^承自UINavigation后,原先的右劃手勢被禁掉了,而我們經(jīng)常會加上一句話打開手勢

    self.interactivePopGestureRecognizer.delegate = (id)self;

這時(shí)候我們?nèi)绻诟晥D里面執(zhí)行右劃手勢,相當(dāng)于執(zhí)行了一個(gè)pop。(只是我們沒有看到效果而已),然后接著去執(zhí)行push,自然就push不到下一級頁面了

解決方法,判斷當(dāng)前頁面是不是根視圖,如果是就禁止掉右劃手勢,如果不是就打開,一般我們controller都會繼承自同一個(gè),在里面寫就行,如下:

//判斷如果是頁面是navigationController中的第一個(gè)頁面就禁止左劃手勢,不然在第一個(gè)頁面執(zhí)行左劃手勢后在push不到第二個(gè)頁面
-(void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];
    if (self.navigationController.viewControllers.firstObject == self) {
        self.navigationController.interactivePopGestureRecognizer.enabled = false;
    }else{
        self.navigationController.interactivePopGestureRecognizer.enabled = true;
    }
}
?著作權(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)容

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