我有一個視圖控制器A
,顯示頂部的狀態欄。從該視圖控制器中,我想顯示隱藏狀態欄的另一個視圖控制器B
。爲了實現這一點,我推翻了該屬性只在模態顯示的視圖控制器上隱藏狀態欄
override var prefersStatusBarHidden: Bool {
return true
}
on B
。爲執行每當狀態欄(DIS)出現的平滑動畫我還重寫屬性
override var preferredStatusBarUpdateAnimation: UIStatusBarAnimation {
return .slide
}
然而,當我現在本視圖控制器B
從A
狀態欄消失突然而A
仍然可見,右在動畫模態轉換開始之前。
我正在尋找一種方法來修復這個「跳躍狀態欄」行爲。理想情況下,我想有一個乾淨的分離:
A
:顯示狀態欄B
:不顯示狀態欄
,這樣,當我提出B
,狀態欄由它覆蓋。
由於狀態欄似乎是一個全球視圖,並不是屬於對於任何特定的視圖控制器,可能很難實現這種行爲。因此,如果無法複製這種確切的動畫行爲,那麼如果狀態欄在視圖控制器轉換期間順利滑出,我也會很高興。我怎樣才能做到這一點?
感謝您的回答。其中一半有效,另一半(解散視圖控制器時「相反」)不適用。您似乎需要向參與轉換的_both_視圖控制器添加代碼,以便爲狀態欄獲得平滑的滑入和滑出動畫。稍後我會添加另一個答案來解釋這種方法。蘋果真的很煩人,因爲它使得這個過程變得如此複雜,並且不會自動爲狀態欄添加動畫 - 我聲稱在99%的情況下,這就是開發者想要的行爲。 – Mischa
對不起,我應該澄清「對面」更好!我認爲可能會發生。過渡回來似乎也會有點棘手。我想你可能需要使用'viewWillDisappear'和'viewWillAppear',並確保你在設置標誌之前移動到需要隱藏狀態欄的視圖控制器。我也會更新我的答案。 – Samantha
@Samantha謝謝它幫助我... –