以编程方式更改导航栏标题:添加符号并更改其颜色
Posted
技术标签:
【中文标题】以编程方式更改导航栏标题:添加符号并更改其颜色【英文标题】:Change navigation bar title programmatically: Add a symbol and change its color 【发布时间】:2013-03-11 20:31:37 【问题描述】:我想在我的导航控制器UINavigationBar
的标题中添加一个字符符号(例如,一个空格字符后跟一个项目符号“•”)。根据我的应用程序的状态,我想更改项目符号的前景色。
我考虑过使用属性字符串来更改颜色。 但是,我没有找到直接访问标题并为其分配属性字符串的方法。
您会推荐什么解决方案来将字符符号添加到 UINavigationBar
并能够更改其颜色?
谢谢!
【问题讨论】:
【参考方案1】:如果您的视图控制器包含在导航控制器中,则设置标题属性就足够了:
self.title=@"Something •";
Xcode 和 NSStrings 完全兼容 UTF-8,因此将项目符号直接放在字符串中就可以了。
如果您尝试独立操作导航栏标题,您将不得不费尽周折才能找到它。如果您知道它是根视图控制器,那么您可以执行以下操作:
UIWindow *keyWindow = [[UIApplication sharedApplication] keyWindow];
UINavigationController *navCtrl = (UINavigationController*)[keyWindow rootViewController];
UINavigationItem *topItem = [navCtrl topItem];
topItem.title = @"Something •";
【讨论】:
如何独立于主标题文本更改项目符号的颜色?谢谢! 在这种情况下不能使用 title 属性,因为它只接受 NSString,不接受 NSAttributedString。您必须使用自己的 UILabel,让导航栏的 titleView 使用它,并设置标签的属性值属性(仅限 ios6 及更高版本)以上是关于以编程方式更改导航栏标题:添加符号并更改其颜色的主要内容,如果未能解决你的问题,请参考以下文章