直入主題
在某些需要隱藏導(dǎo)航欄的頁(yè)面使用這個(gè)方法钞馁。可以解決導(dǎo)航欄右上角顯示一塊空白的bug斗搞。
-(void)viewWillDisappear:(BOOL)animated{
[super viewWillDisappear:animated];
[self.navigationController setNavigationBarHidden:NO animated:YES];
}
- (void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
[self.navigationController setNavigationBarHidden:YES animated:YES];
}
問(wèn)題1:
參數(shù)animated = YES指攒。那么如果這個(gè)頁(yè)面是根視圖。例如個(gè)人中心僻焚,那么切換到這個(gè)頁(yè)面就會(huì)看到一個(gè)導(dǎo)航欄隱藏的動(dòng)畫(huà)允悦。
解決辦法:
將animated參數(shù)由YES改為animated。
**問(wèn)題2: **
如果這個(gè)頁(yè)面有模態(tài)到下一個(gè)頁(yè)面虑啤,那么在模態(tài)和dismiss的過(guò)程中隙弛,會(huì)有一個(gè)隱藏與顯示導(dǎo)航欄的動(dòng)畫(huà)。
解決辦法:
根據(jù)分析結(jié)果狞山,暫未發(fā)現(xiàn)更好的解決方法全闷。暫得出不能由系統(tǒng)控制animated。所以手動(dòng)創(chuàng)建變量isPresent萍启。再模態(tài)后將變量置為YES总珠。相當(dāng)于獨(dú)立了 模態(tài)視圖 的處理方法。使用后統(tǒng)一置為NO勘纯。
[self.navigationController setNavigationBarHidden:YES
animated:_isPresentViewController ? NO : animated];
分析過(guò)程:分析animated 這個(gè)參數(shù)變化過(guò)程局服。
分析結(jié)果:
模態(tài)到下一頁(yè)面,那么這兩個(gè)控制器會(huì)執(zhí)行四個(gè)方法驳遵。順序是從上到下淫奔,present和dismiss的方法中動(dòng)畫(huà)參數(shù)不管傳入BOOL是什么,最后這四個(gè)方法的animated參數(shù)都是同樣的結(jié)果堤结。
Push到下一頁(yè)面唆迁,那么這四個(gè)方法animated的參數(shù)由Push和Pop方法中的動(dòng)畫(huà)參數(shù)決定鸭丛。
具體統(tǒng)計(jì)結(jié)果??
Write In Last
菜鳥(niǎo)會(huì)繼續(xù)深挖這個(gè)animated。也希望有同行或者大盘圃穑看到這個(gè)文章鳞溉。可以給予一些指點(diǎn)妒蔚。不勝感激穿挨。這也是這篇文章<其實(shí)就是日記>的主要目的月弛。