最近工作踩坑不少于样,又踩了一個屡律。
需求是這樣的,只在首頁隱藏Navigation Bar浅萧,其他頁面都不隱藏逐沙。
我在第一個視圖控制器里寫下了如下代碼:
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
self.navigationController.navigationBarHidden = YES;
}
- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
self.navigationController.navigationBarHidden = NO;
}
這樣寫導(dǎo)致的結(jié)果就是當(dāng)你右滑返回一部分,再回來點(diǎn)擊push到下一個頁面洼畅,導(dǎo)航欄會混亂吩案,本來該顯示下一個頁面的標(biāo)題,結(jié)果變成了上一個頁面的標(biāo)題帝簇,如果你在這個頁面進(jìn)行其他的操作很可能導(dǎo)致崩潰徘郭,因?yàn)橄到y(tǒng)還以為是在上一個頁面。
正確的寫法應(yīng)該是下面這樣丧肴。
- (void)viewWillAppear:(BOOL)animated {
[self.navigationController setNavigationBarHidden:YES animated:animated];
[super viewWillAppear:animated];
}
- (void)viewWillDisappear:(BOOL)animated {
[self.navigationController setNavigationBarHidden:NO animated:animated];
[super viewWillDisappear:animated];
}