蘋果系統(tǒng)在不斷的更新?lián)Q代的時候,都會加入一些功能,使這個功能越來越智能,今天帶給大家的是iOS中導(dǎo)航欄pop返回時出現(xiàn)黑塊問題的解決方法,來一起看看武林技術(shù)頻道的詳細(xì)介紹吧!
問題描述:
導(dǎo)航欄正常從A頁面push到B頁面,從B頁面pop返回A頁面時遇到過渡過程中導(dǎo)航欄出現(xiàn)黑塊的問題。
如截圖所示:

問題原因:
A界面導(dǎo)航欄被影藏,B頁面的導(dǎo)航欄存在。過渡的時候沒有動畫。
解決方案:
1.在A頁面中添加影藏導(dǎo)航過渡動畫
override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) self.navigationController?.setNavigationBarHidden(true, animated: true) //避免的出現(xiàn)返回時導(dǎo)航欄的黑塊 } override func viewWillDisappear(_ animated: Bool) { super.viewWillDisappear(animated) self.navigationController?.setNavigationBarHidden(false, animated: true) } 注意:如果使用self.navigationController.isNavigationBarHidden = true 就會出現(xiàn)黑塊問題。 如果A頁面在tableViewController中,切換tab時就有可能導(dǎo)致該界面閃動。
優(yōu)點,不用在自push中再去設(shè)置每一個過渡
2.在B頁面添加過渡動畫
override func viewWillDisappear(_ animated: Bool) { super.viewWillDisappear(animated) self.navigationController?.setNavigationBarHidden(true, animated: true) } 缺點:在每一個子頁面(包括子頁面的子頁面)中都需要設(shè)置
3.設(shè)置window的背景顏色為主題色,這樣就不會出現(xiàn)黑塊,但是還是會出現(xiàn)分層和界面不協(xié)調(diào)的問題。不建議使用
本文是武林技術(shù)頻道小編和大家分享的iOS中導(dǎo)航欄pop返回時出現(xiàn)黑塊問題的解決方法,大家學(xué)習(xí)的怎樣了呢?武林技術(shù)頻道將為大家繼續(xù)提供大家喜歡的干貨。
新聞熱點
疑難解答
圖片精選