我该如何在Swift中更改UINavigationBar的 colored颜色 ?

网上的大多数事情都是这样说的:

[self.navigationController.navigationBar setTitleTextAttributes:@{NSForegroundColorAttributeName : [UIColor whiteColor]}];

我翻译成

let titleDict: NSDictionary = ["NSForegroundColorAttributeName": UIColor.whiteColor()]
self.navigationController.navigationBartitleTextAttributes = titleDict
//self is referring to a UIViewController

但它不起作用.我已经改变了背景和按钮的 colored颜色 ,但是文本的 colored颜色 没有改变.有什么 idea 吗?

推荐答案

使用NSForegroundColorAttributeName作为键,而不是"NSForegroundColorAttributeName"字符串.

let titleDict: NSDictionary = [NSForegroundColorAttributeName: UIColor.whiteColor()]
self.navigationController.navigationBar.titleTextAttributes = titleDict

Swift相关问答推荐

为什么在Swift属性Wrapper中需要类型注释?

为什么第二项任务不在第一项任务完成之前开始?(并发队列)

编写Swift字符串的属性包装时遇到问题

ClosedRange.Swift 中 Int 的索引?

为什么Swift可以在没有足够信息的情况下推断类型?

TabView 无法在屏幕上正确显示

swiftui中服务端图片如何设计view并赋予rotationEffect?

如何制作具有 2 个视图的 3D 旋转动画?

将内容与工作表顶部而不是中间对齐

从 Swift 列表中的行中检索值

`@available` 属性在 macOS 版本上被错误地限制

从 Finder 打开文件时,SwiftUI 的应用程序(_ openFile:) 从未调用过

用于 Swift 编码的 iOS 应用程序的 Ffmpeg

swift 如何从 Int 转换?到字符串

DispatchQueue:不能在非主线程上使用 asCopy = NO 调用

Swift - 迭代 struct 对象时如何对其进行变异

用 UIBezierPath 画一条线

在 xcode8 中找不到 ModuleName-Swift.h 文件

Objective-C 方法与可选需求方法 Swift 冲突

如何快速从另一个视图控制器重新加载表格视图