iOS之隱藏導(dǎo)航欄后返回手勢(shì)失效解決辦法

在實(shí)際的項(xiàng)目中,遇到過個(gè)情況就是一個(gè)界面push到下個(gè)界面投队,但是下個(gè)界面需要隱藏掉導(dǎo)航欄。第二個(gè)界面的導(dǎo)航欄隱藏掉過后爵川,iOS7之后的左劃pop到上個(gè)界面的手勢(shì)不能正常使用敷鸦。下面就簡(jiǎn)單介紹下我的解決這個(gè)問題的思路。

  • 注:
  • V1是控制器1
  • V2是V1 push后的控制器2
  • V3是V1 push后的控制器3

1.隱藏導(dǎo)航欄

方法1:

隱藏導(dǎo)航欄有很多種做法寝贡,
[self.navigationController setNavigationBarHidden:YES animated:animated];
在V2的viewWillAppear中實(shí)現(xiàn)扒披。
如若要展示導(dǎo)航欄:
[self.navigationController setNavigationBarHidden:NO animated:animated];
在V2的viewDidDisappear中實(shí)現(xiàn)。

方法2:

我們push后的界面是需要隱藏導(dǎo)航欄圃泡,但是導(dǎo)航欄依然是存在的碟案。
我們?cè)赩2的viewDidLoad中實(shí)現(xiàn)導(dǎo)航欄的代理:
self.navigationController.delegate = self;
并在該控制器中遵守相應(yīng)的UINavigationControllerDelegate協(xié)議洞焙。
下面就需要實(shí)現(xiàn)相關(guān)的協(xié)議:

#pragma mark - 導(dǎo)航欄的代理
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated {
    // 判斷要顯示的控制器是否是自己
    BOOL isPushSelfClass = [viewController isKindOfClass:[self class]];
    [self.navigationController setNavigationBarHidden:isPushSelfClass animated:animated];
}

這里就是判斷如果是本個(gè)類就需要隱藏導(dǎo)航欄蟆淀,如果不是則不需要拯啦。
這樣以上的方法就可以進(jìn)行隱藏導(dǎo)航欄了。

2.pop返回到上一個(gè)界面

當(dāng)V1push到V2界面的時(shí)候熔任,導(dǎo)航欄已經(jīng)被隱藏掉了褒链,相應(yīng)的pop手勢(shì)也失效了,下面就需要解決下這個(gè)問題疑苔。
一行代碼即可甫匹,
self.navigationController.interactivePopGestureRecognizer.delegate = self;
依然需要遵守相應(yīng)的協(xié)議UIGestureRecognizerDelegate
這樣一來就可以進(jìn)行pop到上個(gè)界面了惦费。
但是我發(fā)現(xiàn)到假如V3界面沒有設(shè)置隱藏導(dǎo)航欄兵迅,這個(gè)界面的pop依然失效了,而返回按鈕依然可以使用薪贫,這樣的情況只要像V2界面那樣加上以上的代碼就可以使得手勢(shì)恢復(fù)恍箭。
self.navigationController.interactivePopGestureRecognizer.delegate = self;
如果是正常可以進(jìn)行pop返回的話瞧省,則可以不用寫上述的代碼扯夭。
下面是相關(guān)的demo
在模擬器運(yùn)行的話可能效果不是很好,>>可能我是手殘>>鞍匾,最好用真機(jī)運(yùn)行交洗,手勢(shì)效果可能比較好。
如果有什么不對(duì)的地方也請(qǐng)留言指正下橡淑,謝謝构拳。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市梁棠,隨后出現(xiàn)的幾起案子置森,更是在濱河造成了極大的恐慌,老刑警劉巖掰茶,帶你破解...
    沈念sama閱讀 216,470評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件暇藏,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡濒蒋,警方通過查閱死者的電腦和手機(jī)盐碱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來沪伙,“玉大人瓮顽,你說我怎么就攤上這事∥穑” “怎么了暖混?”我有些...
    開封第一講書人閱讀 162,577評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)翁授。 經(jīng)常有香客問我拣播,道長(zhǎng)晾咪,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,176評(píng)論 1 292
  • 正文 為了忘掉前任贮配,我火速辦了婚禮谍倦,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘泪勒。我一直安慰自己昼蛀,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,189評(píng)論 6 388
  • 文/花漫 我一把揭開白布圆存。 她就那樣靜靜地躺著叼旋,像睡著了一般。 火紅的嫁衣襯著肌膚如雪沦辙。 梳的紋絲不亂的頭發(fā)上夫植,一...
    開封第一講書人閱讀 51,155評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音怕轿,去河邊找鬼偷崩。 笑死辟拷,一個(gè)胖子當(dāng)著我的面吹牛撞羽,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播衫冻,決...
    沈念sama閱讀 40,041評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼诀紊,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了隅俘?” 一聲冷哼從身側(cè)響起邻奠,我...
    開封第一講書人閱讀 38,903評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎为居,沒想到半個(gè)月后碌宴,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,319評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蒙畴,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,539評(píng)論 2 332
  • 正文 我和宋清朗相戀三年贰镣,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片膳凝。...
    茶點(diǎn)故事閱讀 39,703評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡碑隆,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蹬音,到底是詐尸還是另有隱情上煤,我是刑警寧澤,帶...
    沈念sama閱讀 35,417評(píng)論 5 343
  • 正文 年R本政府宣布著淆,位于F島的核電站劫狠,受9級(jí)特大地震影響拴疤,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜独泞,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,013評(píng)論 3 325
  • 文/蒙蒙 一遥赚、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧阐肤,春花似錦凫佛、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至衫画,卻和暖如春毫炉,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背削罩。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工瞄勾, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人弥激。 一個(gè)月前我還...
    沈念sama閱讀 47,711評(píng)論 2 368
  • 正文 我出身青樓进陡,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親微服。 傳聞我的和親對(duì)象是個(gè)殘疾皇子趾疚,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,601評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容