[英]iOS Swift TabBar status bar text color glitch half white half black
我正在嘗試將某些視圖控制器上的狀態欄文本更改為白色,但在其他一些視圖控制器上它仍然需要為黑色。 (因此不能為整個應用程序全局更改它)。
一切正常,除了前幾秒鍾,當點擊不同的標簽欄時,出現故障時,狀態欄文本的一半變成黑色,而不是白色。 然后一切都完美更新。
結構是這樣的:一個標簽欄控制器,有幾個標簽,每個標簽包含一個導航控制器,包含一個視圖控制器。
有了導航控制器,就必須更改navigationController?.navigationBar.barStyle = .black
以使其工作。
在選項卡上按幾次后,它工作正常。
我做的第一件事當然是將.plist
View controller-based status bar appearance
設置為YES
我還覆蓋了 preferredStatusBarStyle,使用布爾值來設置哪些視圖控制器應該具有白色或黑色狀態欄文本:
override var preferredStatusBarStyle: UIStatusBarStyle {
return coloredNavigationBar ? .lightContent : .default
}
var coloredNavigationBar: Bool = true
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
if coloredNavigationBar {
navigationController?.navigationBar.barStyle = .black
} else {
navigationController?.navigationBar.barStyle = .default
}
setNeedsStatusBarAppearanceUpdate()
}
粘貼的代碼來自到處使用的基本視圖控制器。
是的! @matt 是對的,謝謝。 事實上,iOS 在使用標簽欄時會感到困惑。
解決方案是將其添加到 TabBarController:
override public var childForStatusBarStyle: UIViewController? {
if let controller = selectedViewController as? UINavigationController {
return controller.visibleViewController
}
return selectedViewController
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.