最近項(xiàng)目中有個(gè)需求,需要將登錄頁(yè)導(dǎo)航欄隱藏。其他頁(yè)面導(dǎo)航正常顯示。
自己用demo中嘗試,在viewDidLoad簡(jiǎn)單敲下:
self.navigationController.navgationBar.hidden = YES;
首先登陸頁(yè)本身會(huì)因?yàn)閷?dǎo)航欄的隱藏而上移。好,重新調(diào)整下頁(yè)面位置。
然后在跳轉(zhuǎn)頁(yè)面A的時(shí)候,A頁(yè)面在viewDidLoad設(shè)置:
self.navigationController.navigationBar.hidden = NO;
發(fā)現(xiàn)頁(yè)面會(huì)整體上移,了解到translucent這個(gè)屬性可以調(diào)整controller的view的起始位置
于是再設(shè)置:
self.navigationController.navigationBar.translucent? =NO;
然而并沒(méi)什么用。
在試:
將self.navigationController.navigationBar.hidden = NO;的方式改掉
-(void)viewWillAppear:(BOOL)animated
{
//? ? ? ? self.navigationController.navigationBar.hidden = NO;
? ? [super viewWillAppear:animated];?
? ? [self.navigationController setNavigationBarHidden:NO animated:animated];
? ? self.navigationController.navigationBar.translucent? =NO;
}
驚奇發(fā)現(xiàn)可行。但在項(xiàng)目中這樣設(shè)置仍然不行。
理解到導(dǎo)航欄是頁(yè)面共用的,對(duì)于導(dǎo)航欄,誰(shuí)隱藏誰(shuí)處理,最好在登錄頁(yè)做設(shè)置:
- (void)viewWillAppear:(BOOL)animated
{
? ? [super viewWillAppear:animated];
? ? [self.navigationController setNavigationBarHidden:YES animated:animated];
}
- (void)viewWillDisappear:(BOOL)animated
{
? ? [self.navigationController setNavigationBarHidden:NO animated:animated];
? ? [super viewWillDisappear:animated];
}
好的,問(wèn)題解決。