【问题标题】:Change navigation bar title programmatically: Add a symbol and change its color以编程方式更改导航栏标题:添加符号并更改其颜色
【发布时间】:2013-03-11 20:31:37
【问题描述】:

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

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

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

谢谢!

【问题讨论】:

    标签: ios objective-c uiview uinavigationcontroller uikit


    【解决方案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 及更高版本)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多