先說一下我項(xiàng)目的架構(gòu): 由于設(shè)計(jì)的一個(gè)需求泉唁,我自定義了tabBar(就是寫個(gè)view,view上放置按鈕鹅龄,按鈕上放置icon和title,設(shè)置好選中和非選中狀態(tài)亭畜,最后KVC方式替換掉系統(tǒng)的tabBar)扮休,然后tabBar對應(yīng)4個(gè)導(dǎo)航控制器,導(dǎo)航控制器對應(yīng)普通的VC拴鸵。
后來遇到一個(gè)問題玷坠,在第三個(gè)tabBar的子視圖中,有個(gè)按鈕劲藐,需要切換到首頁八堡,結(jié)果點(diǎn)擊按鈕確實(shí)切換到了首頁
[[NSNotificationCenter defaultCenter] postNotificationName:kCodeMethodChangeTabBarNotification object:@0];
但是當(dāng)我點(diǎn)tabBar第三個(gè)item時(shí),頁面還是之前的界面聘芜,然后我在子視圖的按鈕事件中加了popToRootViewControllerAnimated
[self.navigationController popToRootViewControllerAnimated:NO];
[[NSNotificationCenter defaultCenter] postNotificationName:kCodeMethodChangeTabBarNotification object:@0];
結(jié)果點(diǎn)擊按鈕切換到首頁時(shí)兄渺,底部tabBar消失了,開始我以為是我自定義tabBar產(chǎn)生的問題汰现,我又注掉自定義tabBar挂谍,換成系統(tǒng)tabBar,結(jié)果問題依然存在瞎饲,這時(shí)候意識(shí)到不是這個(gè)問題口叙。
不寫popToRoot,能返回且tabBar不消失嗅战,寫了能返回但消失了妄田。因?yàn)橛卸鄠€(gè)地方有如此需求,無意間點(diǎn)到其中一個(gè)仗哨,既能返回且底部tabBar不消失形庭,看了下代碼,只是將兩句代碼位置變換了厌漂。
[[NSNotificationCenter defaultCenter] postNotificationName:kCodeMethodChangeTabBarNotification object:@3];
[self.navigationController popToRootViewControllerAnimated:NO];
不明白這是什么情況,大概搜索了下斟珊,看到這個(gè)文章苇倡,既然這樣,暫時(shí)這樣了