iOS:hidesBottomBarWhenPushed的正確用法

今天說的是在TabBar嵌套Nav時(shí)撞鹉,進(jìn)行Push的時(shí)候隱藏TabBar的問題疟丙。

之前項(xiàng)目也需要這么做,那時(shí)候iOS7還沒出鸟雏,也是各種搜羅享郊,后來的解決方法是當(dāng)push操作的時(shí)候自己隱藏Tabbar,push過去視圖拉伸適應(yīng)屏幕孝鹊,再pop回來的時(shí)候接再顯示Tabbar炊琉,過程復(fù)雜還需要自己寫動(dòng)畫,最終效果也不是很理想。

前兩天公司APP上架苔咪,當(dāng)時(shí)沒有適配iOS7锰悼,在XCode4.6上開發(fā)編譯并發(fā)布,居然在iOS7下跑起來沒有太大的問題团赏,只是一個(gè)Nav的文字錯(cuò)位箕般,有閃退,不過勉強(qiáng)還能用舔清,其中有自定義Tabbar丝里,有很多動(dòng)畫,后來在一篇介紹iOS7適配的文章中看到這么一句話:

在Xcode 4.6上使用iOS 6 SDK進(jìn)行編譯的app在iOS

7上運(yùn)行時(shí)是采用一種特殊的模擬模式鸠踪,它試圖保存app原來的樣子丙者。但是一旦你升級(jí)到了Xcode 5,在iOS

7SDK上編譯营密,你的app就會(huì)開始出現(xiàn)狀況了械媒。

已經(jīng)寫的很清楚了,于是我再到Xcode5中編譯運(yùn)行原來的項(xiàng)目评汰,就破漏百出了纷捞,開始完全崩潰,各種問題浮現(xiàn)被去。

好了主儡,回到今天說的正題,先和大家說說hidesBottomBarWhenPushed惨缆,從這個(gè)屬性名也能知道它的意思了糜值,官方的解釋是這樣:

If YES, then when this view controller is pushed into a controller hierarchy with a bottom bar (like a tab bar), the bottom bar will slide out. Default is NO.

大致意思是如果為YES,當(dāng)這個(gè)控制器push的時(shí)候坯墨,底部的Bar寂汇,比如Tabbar會(huì)滑走,也就是不會(huì)在push后的視圖上顯示出來捣染,默認(rèn)值為NO骄瓣。

我講的場(chǎng)景大概為這個(gè)樣子:

最外面是一個(gè)TabBarController,套了兩個(gè)NavgationController耍攘,當(dāng)其中一個(gè)VC push下去的時(shí)候榕栏,一般情況是這樣:

當(dāng)隱藏Tabbar的時(shí)候再push,效果是這樣:

怎么樣蕾各,是不是有時(shí)候確實(shí)會(huì)遇到這樣的情況扒磁?其實(shí)蘋果真的考慮的很周全,為我們創(chuàng)造了hidesBottomBarWhenPushed這個(gè)屬性式曲,為了解決這個(gè)問題渗磅。代碼非常簡(jiǎn)單,一句或者兩句話即可检访,這里得分幾種Push的情況始鱼。

Case1:xib加載或者Storyboard用identifier獲取Controller

UIViewController *v2 = [self.storyboard instantiateViewControllerWithIdentifier:@"v2"];

v2.hidesBottomBarWhenPushed = YES;

[self.navigationController pushViewController:v2 animated:YES];

Case2:拉線,也就是Storyboard用performSegue

self.hidesBottomBarWhenPushed = YES;

[self performSegueWithIdentifier:@"tov2" sender:nil];

self.hidesBottomBarWhenPushed = NO;

Tip:經(jīng)測(cè)試證明脆贵,此種方式只會(huì)對(duì)后面的一級(jí)生效医清,繼續(xù)往后Push還會(huì)出現(xiàn)TabBar,要繼續(xù)往后push也隱藏Tabbar還得使用Case3的方法卖氨,也建議如此会烙!

Case3:拉線,在prepareForSegue函數(shù)里

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender

{

[segue.destinationViewController setHidesBottomBarWhenPushed:YES];

}

更方便的做法:如果你在用 Storyboard筒捺,可以在 ViewController 的設(shè)置面板中把Hide Bottom Bar on Push屬性勾選上柏腻,效果和上文代碼一樣。

暫時(shí)就用到這幾點(diǎn)系吭,我之前的做法五嫂,自己手動(dòng)隱藏,拉伸view肯尺,顯示不但麻煩沃缘,兼容性也不好,移到iOS7上問題多多则吟,不過用這個(gè)屬性可以非常方便的實(shí)現(xiàn)此需求槐臀,并且在iOS6上也完美兼容哦。

注意:還有個(gè)問題氓仲,這個(gè)屬性只支持非自定義的Tabbar水慨,也就是只支持原生Tabbar,如果是自定義的Tabbar會(huì)產(chǎn)生你意想不到的效果敬扛,我之前就遇到過晰洒,因?yàn)槭褂胔idesBottomBarWhenPushed后,系統(tǒng)內(nèi)部會(huì)處理TabbarController上Tabbar這個(gè)View舔哪,我之前自定義的Tabbar做法是吧原生Tabbar這個(gè)View隱藏掉欢顷,然后添加到自己繪制的Tabbar

View上去,缺點(diǎn)就是這樣你的自定義的TabBarview接收不到系統(tǒng)應(yīng)有的一些響應(yīng)捉蚤,于是我嘗試著把自定義的TabBar

View添加到原來的TabBar View上抬驴,也就是不隱藏原生的TabBar,而是覆蓋在上面缆巧,看不出任何區(qū)別布持,效果也能達(dá)到上面圖片的效果!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末陕悬,一起剝皮案震驚了整個(gè)濱河市题暖,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖胧卤,帶你破解...
    沈念sama閱讀 222,865評(píng)論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件唯绍,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡枝誊,警方通過查閱死者的電腦和手機(jī)况芒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,296評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來叶撒,“玉大人绝骚,你說我怎么就攤上這事§艄唬” “怎么了压汪?”我有些...
    開封第一講書人閱讀 169,631評(píng)論 0 364
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)古瓤。 經(jīng)常有香客問我止剖,道長(zhǎng),這世上最難降的妖魔是什么湿滓? 我笑而不...
    開封第一講書人閱讀 60,199評(píng)論 1 300
  • 正文 為了忘掉前任滴须,我火速辦了婚禮,結(jié)果婚禮上叽奥,老公的妹妹穿的比我還像新娘扔水。我一直安慰自己,他們只是感情好朝氓,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,196評(píng)論 6 398
  • 文/花漫 我一把揭開白布魔市。 她就那樣靜靜地躺著,像睡著了一般赵哲。 火紅的嫁衣襯著肌膚如雪待德。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,793評(píng)論 1 314
  • 那天枫夺,我揣著相機(jī)與錄音将宪,去河邊找鬼。 笑死橡庞,一個(gè)胖子當(dāng)著我的面吹牛较坛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播扒最,決...
    沈念sama閱讀 41,221評(píng)論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼丑勤,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了吧趣?” 一聲冷哼從身側(cè)響起法竞,我...
    開封第一講書人閱讀 40,174評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤耙厚,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后岔霸,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體薛躬,經(jīng)...
    沈念sama閱讀 46,699評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,770評(píng)論 3 343
  • 正文 我和宋清朗相戀三年秉剑,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了泛豪。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,918評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡侦鹏,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出臀叙,到底是詐尸還是另有隱情略水,我是刑警寧澤,帶...
    沈念sama閱讀 36,573評(píng)論 5 351
  • 正文 年R本政府宣布劝萤,位于F島的核電站渊涝,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏床嫌。R本人自食惡果不足惜跨释,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,255評(píng)論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望厌处。 院中可真熱鬧鳖谈,春花似錦、人聲如沸阔涉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,749評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽瑰排。三九已至贯要,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間椭住,已是汗流浹背崇渗。 一陣腳步聲響...
    開封第一講書人閱讀 33,862評(píng)論 1 274
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留京郑,地道東北人宅广。 一個(gè)月前我還...
    沈念sama閱讀 49,364評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像傻挂,于是被迫代替她去往敵國(guó)和親乘碑。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,926評(píng)論 2 361

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

  • UITabBarController,在這個(gè)視圖控制器中有一個(gè)UITabBar控件套腹,用戶通過點(diǎn)擊tabBar進(jìn)行視...
    WeiHing閱讀 17,934評(píng)論 2 20
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件资铡、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,125評(píng)論 4 61
  • fs模塊:基礎(chǔ)的文件操作APIpath模塊:提供和路徑相關(guān)的API*readline:用于 讀取大文本文件电禀,一行一...
    不要和我名字一樣閱讀 876評(píng)論 0 5
  • 我的人生路上有人提攜過我嗎?有誰讓我念念不忘嗎笤休?好像沒有尖飞。應(yīng)該說很少。是我沒有感恩心嗎店雅?還是自始以來政基,自己不夠優(yōu)秀...
    啊攀攀了閱讀 378評(píng)論 1 1
  • 最近莫名的會(huì)做夢(mèng),夢(mèng)到以前發(fā)生的事情闹啦,有好的沮明,有壞的,有值得懷念窍奋,有揮之不去的噩夢(mèng)荐健。小時(shí)候會(huì)希望自己快點(diǎn)長(zhǎng)大,現(xiàn)在...
    喵總閱讀 208評(píng)論 0 0