ios - 以编程方式更改导航栏标题 : Add a symbol and change its color

标签 ios objective-c uiview uinavigationcontroller uikit

我想在我的导航 Controller 的 UINavigationBar 的标题中添加一个字符符号(例如,一个空白字符后跟一个项目符号“•”)。根据我的应用程序的状态,我想更改项目符号的前景色。

我想过使用属性字符串来改变颜色。 但是,我没有找到直接访问标题并为其分配属性字符串的方法。

如果要将字符符号添加到 UINavigationBar 并能够更改其颜色,您会推荐什么解决方案?

谢谢!

最佳答案

如果您的 View Controller 包含在导航 Controller 中,设置标题属性就足够了:

self.title=@"Something •";

Xcode 和 NSStrings 完全符合 UTF-8,所以把项目符号放在字符串中就可以了。

如果您尝试独立操作导航栏标题,您将不得不经历一些困难才能找到它。如果你知道它是 Root View Controller ,那么你可以这样做:

UIWindow *keyWindow = [[UIApplication sharedApplication] keyWindow];
UINavigationController *navCtrl = (UINavigationController*)[keyWindow rootViewController];
UINavigationItem *topItem = [navCtrl topItem];
topItem.title = @"Something •";

关于ios - 以编程方式更改导航栏标题 : Add a symbol and change its color,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15348030/

相关文章:

ios - 如何将数据库文件作为项目的一部分包含在 iOS 中,它位于我的 Mac 上的路径 Library/..Applications/../dbfile.sqlite

ios - 图片太多,应用程序太大

iOS UIView 背景图片

iphone - 删除 UIImageView 的矩形

ios - 停止在 UITableViewCell 中重复值

ios - swift :Issue with increment Int inside String

ios - 如何在 iOS 中制作如下图所示的仪 TableView ?

ios - 在 iOS 上,如何调用 applicationDidBecomeActive、loadView 和 viewDidLoad?

iOS:在屏幕上镜像内容

ios - 您能否仅将较大的磁盘镜像的较小矩形部分加载到内存中?