遇到一個詭異的問題,我的根視圖是Tabbar+navigation废累,在點(diǎn)擊push到另外頁面的時候邓梅,頁面卡住了,導(dǎo)航欄的標(biāo)題是下個頁面的邑滨,view還是當(dāng)前的日缨,然后我按home鍵,在進(jìn)入到應(yīng)用掖看,頁面又正常了匣距。
原因是手勢pop的問題. 當(dāng)處在navi的根控制器時候, 做一個側(cè)滑pop的操作, 看起來沒任何變化, 但是再次push其它控制器時候就會出現(xiàn)上述問題了。這種情況是會出現(xiàn)在我們自定義的navigation中乙各,因?yàn)槔^承自UINavigation后墨礁,原先的右劃手勢被禁掉了,而我們經(jīng)常會加上一句話打開手勢
self.interactivePopGestureRecognizer.delegate = (id)self;
這時候我們?nèi)绻诟晥D里面執(zhí)行右劃手勢耳峦,相當(dāng)于執(zhí)行了一個pop恩静。(只是我們沒有看到效果而已),然后接著去執(zhí)行push蹲坷,自然就push不到下一級頁面了
解決方法驶乾,判斷當(dāng)前頁面是不是根視圖,如果是就禁止掉右劃手勢循签,如果不是就打開级乐,一般我們controller都會繼承自同一個,在里面寫就行县匠,如下:
//判斷如果是頁面是navigationController中的第一個頁面就禁止左劃手勢风科,不然在第一個頁面執(zhí)行左劃手勢后在push不到第二個頁面-(void)viewDidAppear:(BOOL)animated{? ? [superviewDidAppear:animated];if(self.navigationController.viewControllers.firstObject ==self) {self.navigationController.interactivePopGestureRecognizer.enabled =false;? ? }else{self.navigationController.interactivePopGestureRecognizer.enabled =true;? ? }}