iOS大神留步,你確定你會(huì) (優(yōu)雅) 的隱藏和顯示導(dǎo)航欄嗎?

歡迎動(dòng)畫.gif

條條大路通羅馬,你是用這種方法隱藏和顯示導(dǎo)航欄的嗎?

- (void)viewWillAppear:(BOOL)animated {
 [  super viewWillAppear:animated]; 
    [self.navigationController setNavigationBarHidden:YES animated:YES];
}
- (void)viewWillDisappear:(BOOL)animated { 
    [super viewWillDisappear:animated];
   [self.navigationController setNavigationBarHidden:NO animated:YES];
}

實(shí)話說,2015年我那會(huì)做iOS的時(shí)候也是這么做的[捂臉][捂臉],雖然當(dāng)時(shí)這樣做可以實(shí)現(xiàn)想要的結(jié)果,但是會(huì)很累,需要在控制中的每個(gè)顯示和注銷的- (void)viewWillAppear:(BOOL)animated - (void)viewWillDisappear:(BOOL)animated 添加一段代碼。
真心講這樣寫的代碼很低效,自己的都不想看。為了讓代碼更優(yōu)雅,讓開發(fā)更高效,我們看看更優(yōu)雅的編碼方式;

- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated{

}

這個(gè)方法不知道大家熟不熟悉,這個(gè)就是UINavigationController代理方法中的一個(gè),它在有導(dǎo)航欄的控制器中,當(dāng)控制器加載完,導(dǎo)航欄要出現(xiàn)的時(shí)候會(huì)調(diào)用。
既然是導(dǎo)航欄要出現(xiàn)的時(shí)候調(diào)用,那我們是不是可以在這里做判斷呢,事實(shí)證明是可以的

- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated{
    
    BOOL isHiddenNavBar = [viewController isKindOfClass:[self class]];
    [self.navigationController setNavigationBarHidden:isHiddenNavBar animated:YES];
}

當(dāng)然這樣做的前提是我們要實(shí)現(xiàn)實(shí)現(xiàn)UINavigationController的delegate
git: https://github.com/huxiao123/NavigationDemo

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

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

  • IOS的項(xiàng)目多數(shù)會(huì)遇到控制狀態(tài)欄和導(dǎo)航欄的問題,比如隱藏狀態(tài)欄、控制狀態(tài)欄的文字顏色等,導(dǎo)航欄也有同樣需求。本文總...
    YHWXQ簡(jiǎn)簡(jiǎn)單單的生活閱讀 1,871評(píng)論 1 8
  • 前言 由于最近兩個(gè)多月,筆者正和小伙伴們忙于對(duì)公司新項(xiàng)目的開發(fā),筆者主要負(fù)責(zé)項(xiàng)目整體架構(gòu)的搭建以及功能模塊的分工。...
    CoderMikeHe閱讀 27,390評(píng)論 74 270
  • 安裝squid yum -y install squid 配置 squid 配置文件位置 /etc/squid/s...
    ABasicVersion閱讀 825評(píng)論 0 1
  • 我和地乙同學(xué)提議發(fā)起這個(gè)寫作群,是因?yàn)樽约菏芤嬗趯懽?。我發(fā)現(xiàn)過去做過瑜伽,每天靜心,經(jīng)常聚焦……但始終沒有一種方法...
    伊蔥閱讀 489評(píng)論 1 3
  • 事物發(fā)展的路徑通常是波動(dòng)型上升,了解到這一點(diǎn),便會(huì)對(duì)偶爾的低谷坦然面對(duì),尤其是杜絕找新方法的念頭,耐心和認(rèn)知...
    雅倩1120閱讀 118評(píng)論 0 0

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