最近做的demo bug出現了,我覺得這個bug出現得很經典所以貼出來給大家看看,
bug演示就是:點擊返回鍵失效出現如下gif圖演示的內容
為啥會出現如此奇葩的bug,系統的返回鍵居然失效了,尷尬症又犯了,愣是點了很久也不知所措
bug出現的源頭:從不隱藏導航欄進行手勢返回的時候,手勢返回一半松手,回到不隱藏導航欄的頁面,在push其他頁面,就會出現返回鍵失效的問題
出現bug的重要步驟:手勢返回一半又松手
進行頁面隱藏導航欄的代碼如下
//顯示導航欄 [self.navigationController setNavigationBarHidden:NO animated:NO];
//隱藏導航欄 [self.navigationController setNavigationBarHidden:YES animated:NO];
個人認為出現該bug的原因就是手勢返回的時候 導航欄的頁面是有動畫效果的(可以拿其他app試試),頁面的標題和按鈕都會漸變
而隱藏導航欄和顯示導航欄的代碼設置的animated是NO,所以手勢返回就會沖突,而使整個導航控制器頁面和返回鍵出現問題呢
解決的辦法很簡單,只要將NO設置為YES就好
//顯示導航欄 [self.navigationController setNavigationBarHidden:NO animated:YES];
//隱藏導航欄 [self.navigationController setNavigationBarHidden:YES animated:YES];
完美解決該bug,不會再來~~