假設我們有三個屏幕像這樣互相推送 A-> B-> C 屏幕A原本是在tabBar中。 導航欄應該被隱藏在屏幕C和可見的所有rest.To的做到這一點我做了以下在viewWillAppear中使用setNavigationBarHidden不起作用
-(void) viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
[self.navigationController setNavigationBarHidden: YES animated:NO];
}
的viewWillAppear中被調用在所有的情況下,但隱藏或顯示的導航欄不一定在UI上得到反映。 例如,如果使用後退按鈕,則導航欄會同時出現在A & B中,但是如果點擊tabBarButton,導致應用程序即使從屏幕C直接跳轉到屏幕A,屏幕A也會缺少導航欄。 我檢查了self.navigatioController,它已經初始化並且有一個值。
我也試着在viewDidAppear中設置NavigationBarHidden屬性,但沒有運氣。
在這個問題上的任何幫助?什麼可能導致這樣一個奇怪的場景?
編輯︰答案 我發現了這個問題。 屏幕C是很多容器的複雜屏幕。在其中一個容器中,我改變了navigationBar狀態,並影響了應用程序中的所有其他內容,並導致了奇怪的行爲,並使我無法自己控制狀態。 對不起。
你試過把它隱藏在vc B的'viewDidDissapear'上嗎? – Tj3n
是的,我做了,但也沒有工作也# –
'[self.navigationController setNavigationBarHidden:YES];'工作正常,當我只是把它放在'viewDidLoad',你可能想再次檢查,如果你取消隱藏它的某個地方代碼 – Tj3n