iOS中導航欄pop返回時出現黑塊問題的解決方法

2022-09-24 09:45:13 字數 841 閱讀 5914

前言

蘋果在ios7以後給導航控制器加了乙個pop手勢,只要手指在螢幕邊緣滑動,當前的控制器的檢視就會隨著你的程式設計客棧手指移動,當使用者鬆手後,系統會判斷手指拖動出來的大小來決定是否要執行控制器的pop操作。

這個想法非常棒,但最近在使用中發現了一些問題,下面話不多說了,來一起看看詳細的介紹吧。

問題描述:

導航欄正常從a頁面push到b頁面,從b頁面pop返回a頁面時遇到過渡過程中導航欄出現黑塊的問題。

如截圖所示:

問題原因:

a介面導航欄被影藏,b頁面的導航欄存在。過渡的時候沒有動畫。

解決方案:

1.在a頁面中新增影藏導航過渡動畫

override func viewwillappear(_ animated: bool)

override func viewwilldisappear(_ animated: bool)

注意:如果使用self.n**igationcontroller.isn**igationbarhidden = true 就會出現黑塊問題。 如果a頁面在t程式設計客棧ableviewcontroller中,切換tab時就有可能導致該介面閃動。

優點,不用在自push中再去設定每乙個過渡

2.在b頁面新增過渡動畫

override func viewwilldisappear(_ animated: bool)

缺點:在每乙個子頁面(包括子頁面的子頁面)中都需要設定

3.設定window的背景顏色為主題色,這樣就不會出現黑塊,但是還是會出現分層和介面不協調的問題。不建議使用

總結本文標題: ios中導航欄pop返回時出現黑塊問題的解決方法

本文位址:

iOS中導航欄隱藏後,設定狀態列不透明效果

在開發中,當我們設定了導航欄隱藏之後,卻發現狀態列也跟著透明了,如果當前頁面是個可以滾動的tableview時,我們發現使用者體驗十分不好。就如下圖 那麼請看解決方法 為了體現出下文的bug,這裡我把狀態列設為紅色 成功是成功了,可是這裡設定的是全域性,因此其他頁面也出現這個狀況,那就不好了。怎麼解...

Android中導航欄之自定義導航布局

系列文章導航 android中導航欄之 的使用 android中導航欄之溢位選單overflowmenu android中導航欄之搜尋框searchview android中導航欄之自定義導航布局 android中導航欄之標籤導航暨tablayout用法 之前我們說了 的各種用法,但此時我們就有小夥...

IOS 改變導航欄返回按鈕的標題例項詳解

ios 改變導航欄返回按鈕的標題例項詳解 前言 下午又找到了乙個新的方法 這個方法不錯 暫時沒有發現異常的地方。新寫的app中需要使用uin igationcontroller對各個頁面進行導航,但由於第一級頁面的title較長,在進入第二級頁面後返回按鈕leftbuttonitem的title就會...