gpt4 book ai didi

iOS Swift TabBar 状态栏文本颜色故障一半白色一半黑色

转载 作者:行者123 更新时间:2023-12-01 15:48:42 28 4
gpt4 key购买 nike

我正在尝试将某些 View Controller 上的状态栏文本更改为白色,但在其他一些 View Controller 上它仍然需要为黑色。 (因此不能为整个应用程序全局更改它)。
一切正常,除了前几秒钟,当点击不同的标签栏时,出现故障时,状态栏文本的一半变成黑色,而不是白色。然后一切都完美更新。
结构是这样的:
带有几个选项卡的选项卡栏 Controller ,每个选项卡包含一个导航 Controller ,包含一个 View Controller 。
有了导航 Controller ,就必须更改 navigationController?.navigationBar.barStyle = .black使其工作。
在选项卡上按几次后,它工作正常。
我做的第一件事当然是设置为 YES View controller-based status bar appearance来自 .plist我还覆盖了 preferredStatusBarStyle,使用 bool 值来设置哪些 View Controller 应该具有白色或黑色状态栏文本:

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()
}
粘贴的代码来自到处使用的基本 View Controller 。
SCREENSHOT - status bar glitch demo

最佳答案

是的! @matt 是对的,谢谢。事实上,iOS 在使用标签栏时会感到困惑。
解决方案是将其添加到 TabBarController:

override public var childForStatusBarStyle: UIViewController? {
if let controller = selectedViewController as? UINavigationController {
return controller.visibleViewController
}
return selectedViewController
}

关于iOS Swift TabBar 状态栏文本颜色故障一半白色一半黑色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63926103/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com