【发布时间】:2020-07-02 19:44:46
【问题描述】:
我正在更新一个在 Xcode 10 上编译并在 iOS 13 上运行良好的应用程序。我想做一些更改,因此在 Xcode 11 上重新编译,现在 barTintColor 出现问题。
如果“Large Titles”设置为“Always”,我的自定义 barTintColor 不会被应用——我只会得到默认的灰色。如果“大标题”设置为“从不”,我的自定义 barTintColor 将按预期应用。如果“大标题”设置为“自动”,则显示大标题时导航栏默认为灰色,显示小标题时默认为我的自定义颜色。比如我的nav bar下面的TableView被推上去的时候,默认的大标题切换到小标题,我的NavBar变色。正常行为是它始终是我的自定义颜色。
我的 ViewController 类中的相关代码,最后一行是设置 barTintColor 的代码:
override func viewDidLoad() {
super.viewDidLoad()
setDelegates()
setTableViewHeightForCollapsingHeaders()
setNavigtionBarItems()
doSplitViewManagement()
}
override func viewWillAppear(_ animated: Bool) {
clearsSelectionOnViewWillAppear = splitViewController!.isCollapsed
super.viewWillAppear(animated)
updateUI()
}
fileprivate func setNavigtionBarItems() {
//set up UI buttons
navigationItem.leftBarButtonItem = editButtonItem
let addButton = UIBarButtonItem(barButtonSystemItem: .add, target: self, action: #selector(insertNewObject(_:)))
navigationItem.rightBarButtonItem = addButton
navigationController?.navigationBar.barTintColor = UIColor(hex: 0x5da0a2)
}
知道行为发生变化的原因以及如何解决吗?
【问题讨论】:
标签: ios swift uinavigationbar uinavigationbarappearance