我有一个UINavigationItem,但我在属性检查器中的tittle,prompt和back按钮旁边找不到任何东西

我想知道如何UINavigationItem使用代码更改背景颜色?还是以编程方式?
我正在尝试更改我的应用程序中导航栏的文本颜色,但我无法弄清楚它是如何完成的.在Xcode 6 beta 2之前我使用的是:
navigationController.navigationBar.titleTextAttributes = [UITextAttributeTextColor: UIColor.whiteColor()]
Run Code Online (Sandbox Code Playgroud)
这工作得非常好但是在更新到新版本之后我只是得到一个错误,说明'titleTextAttributes'在Swift中不可用.
另外,如何更改状态栏的文本颜色?我已经尝试在Attributes检查器中更改它,我也尝试通过代码遵循Objective C示例,但我仍然无法让它工作.
我有一个主导航控制器,在其中设置背景颜色
override func viewDidLoad() {
super.viewDidLoad()
self.navigationBar.backgroundColor = UIColor.blue
self.navigationBar.isTranslucent = false
}
Run Code Online (Sandbox Code Playgroud)
但是,在那种情况下,我的导航栏会变成完全白色。当我将isTranslucent设置为true时,我的导航栏将变为透明,但这实际上不是我所需要的。我只想有蓝色的导航栏。
以防万一在我的导航控制器中
override var preferredStatusBarStyle: UIStatusBarStyle{ return .lightContent }
Run Code Online (Sandbox Code Playgroud)
并在AppDelegate中设置色调颜色
UINavigationBar.appearance().tintColor = UIColor.white
UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName: UIColor.white]
Run Code Online (Sandbox Code Playgroud)
评论tintColor也没有帮助我。
我正在更新一个在 Xcode 10 上编译并在 iOS 13 上正常运行的应用程序。我想进行一些更改,因此在 Xcode 11 上重新编译,但现在 barTintColor 出现问题。
如果“大标题”设置为“始终”,则不会应用我的自定义 barTintColor - 我只会获得默认的灰色。如果“大标题”设置为“从不”,我的自定义 barTintColor 将按预期应用。如果“大标题”设置为“自动”,则显示大标题时导航栏默认为灰色,显示小标题时导航栏为我的自定义颜色。例如,当我的导航栏下方的TableView被向上推时,默认的大标题切换为小标题,并且我的导航栏改变颜色。正常行为是它始终是我的自定义颜色。
我的 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)
}
Run Code Online (Sandbox Code Playgroud)
知道行为发生变化的原因以及如何解决吗?