UINavigationController 标题外观设置器不起作用?

Posted

技术标签:

【中文标题】UINavigationController 标题外观设置器不起作用?【英文标题】:UINavigationController Title appearance setters not working? 【发布时间】:2014-05-08 15:43:35 【问题描述】:

我正在尝试全局设置 UINavigationBar 标题的样式。我已经成功地将外观对象与许多 UI 控件一起使用,但由于某种原因,这些标题不会改变……我正在尝试设置字体、字体颜色和大小,但两者都不起作用。我的代码如下。

NSDictionary *attributes = [NSDictionary dictionaryWithObjectsAndKeys:[UIFont
                                                                       appFontOfSize:24], NSFontAttributeName,
                            [UIColor whiteColor], NSForegroundColorAttributeName, nil];

[[UINavigationBar appearance] setTitleTextAttributes:attributes];

【问题讨论】:

这段代码你在哪里写的? 【参考方案1】:

我在我的应用程序(ios 7)中做了类似的事情。我使用了以下代码:

NSDictionary * navBarTitleTextAttributes = @ NSForegroundColorAttributeName : [UIColor whiteColor],
                                              NSFontAttributeName: [UIFont systemFontOfSize:18.0f]
                                              ;

[[UINavigationBar appearance] setTitleTextAttributes:navBarTitleTextAttributes];

实际上,它几乎是相同的代码,只是符号不同。但也许它是这样工作的?你在哪里设置外观?我直接在 AppDelegate 类中定义。

【讨论】:

实际上我发现我已经直接覆盖了这些设置......不过你发布的代码工作正常。感谢您的帮助:)【参考方案2】:

我在 iOS 6 和 7 上使用的代码是:

    [appearance setTitleTextAttributes:@
                                         UITextAttributeTextColor : [UIColor blackColor],
                                         UITextAttributeTextShadowColor : [UIColor lightGrayColor],
                                         ];

注意UITextAttribute*的用法

【讨论】:

以上是关于UINavigationController 标题外观设置器不起作用?的主要内容,如果未能解决你的问题,请参考以下文章

带有主 UINavigationController 和详细 UINavigationController 的 UISplitViewcontroller

UINavigationController:调整大小动画中的标题跳转

UIPopoverController 中的 UINavigationController:设置标题

带有 UINavigationController 的 UITabBarController,在 hidesBottomBarWhenPushed 上隐藏 UINavigationController

在 UINavigationController 内的 UITabBarcontroller 中添加 UINavigationController?

在 UINavigationController 中添加带有标题的图像