關(guān)于導(dǎo)航欄隱藏和顯示 出現(xiàn)的屏幕花屏

上一個(gè)界面要求隱藏導(dǎo)航欄 下一個(gè)界面顯示導(dǎo)航欄
- (void)viewWillAppear:(BOOL)animated{ [super viewWillAppear:animated]; [self.navigationController.navigationBar setHidden:YES]; }
- (void)viewWillDisappear:(BOOL)animated{ [super viewDidDisappear:animated]; [self.navigationController.navigationBar setHidden:NO]; }
這樣寫的話屏幕在界面切換的時(shí)候會(huì)很不舒服 造成用戶體驗(yàn)性很差
- (void)viewWillAppear:(BOOL)animated{ [super viewWillAppear:animated]; [self.navigationController setNavigationBarHidden:YES animated:animated]; }
- (void)viewWillDisappear:(BOOL)animated{ [super viewDidDisappear:animated]; [self.navigationController setNavigationBarHidden:NO animated:animated]; }
如此寫的話就不會(huì)出現(xiàn)這種情況 完美解決

問(wèn)題分析

在網(wǎng)上查了一圈 發(fā)現(xiàn)如下闡述
應(yīng)該是UINavigationController 在導(dǎo)航欄控制API上設(shè)計(jì)的缺陷,一個(gè)UINavigationController管理了N個(gè)UIViewController棧式的push和pop,而UINavigationBar 有UINavigationController管理.這就導(dǎo)致了UIViewConstroller無(wú)法控制自己上面bar單獨(dú)隱藏和顯示,非常類似UIApplication全局的status bar,不過(guò)在iOS7之后為viewController控制自己的status bar 提供下面的幾個(gè)方法:
-(BOOL)prefersStatusBarHidden;
-(UIStatusBarStyle)preferredStatusBarStyle;
-(UIStatusBarAnimation)preferredStatusBarUpdateAnimation;

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容