无法通过Swift 5以编程方式更改navigationController.navigationBar条形色调的颜色

问题描述 投票:0回答:1

在我的[[Main.storyboard中,我有一个NavigationBar TintColor设置为default

在我的快捷文件中,我具有以下功能,在该功能中,我试图更新一些元素的外观,例如搜索栏颜色和导航栏背景颜色。搜索栏的颜色更改有效,但导航栏的背景颜色无效。

导航栏的背景色应基于在以前的View Controller上选择的颜色,因此我正在点击(selectedCategory?.color)。

使用print(navBarColour),我确认正确/预期的颜色已被拾取,但是我的导航栏仍然以某种方式显示默认颜色。

任何人都可以帮忙吗?

override func viewWillAppear(_ animated: Bool) { if let colourHex = selectedCategory?.colour { title = selectedCategory!.name guard let navBar = navigationController?.navigationBar else {fatalError("Navigation does not exists.")} if let navBarColour = UIColor(hexString: colourHex) { navBar.barTintColor = navBarColour navBar.tintColor = ContrastColorOf(backgroundColor: navBarColour, returnFlat: true) navBar.titleTextAttributes = [NSAttributedString.Key.foregroundColor: ContrastColorOf(backgroundColor: navBarColour, returnFlat: true)] searchBar.barTintColor = navBarColour print(navBarColour) } } }

ios swift xcode navigationbar swift5
1个回答
0
投票
我可以如下更改导航栏的背景颜色:

bar.backgroundColor = .red

对我有用。因此,您可以使用颜色值,确保在此属性中传递正确的UIColor值。我希望它有助于解决您的问题。
© www.soinside.com 2019 - 2024. All rights reserved.