0

我正在使用 titleTextAttributes 使用不同的颜色和自定义字体自定义 UINavigationBar。但是,当我移动到另一个视图时,我想使用与以前不同的颜色和相同的自定义字体。

我用过,

[[UINavigationBar appearance] setTitleTextAttributes:mySettings]

在 AppDelegate.m 中。在另一个 viewController 的 viewDidLoad 中使用 newSettings 调用相同的方法时,它不会被反映。

我可以在另一个 viewController 的 viewDidLoad 中更改条形颜色或条形色调颜色。但是,我的标题前景色没有改变。我错过了什么吗?

我必须有自定义titleView的最后一个解决方案。却想避而远之。有什么输入吗?

4

1 回答 1

0

[[UINavigationBar appearance] setTitleTextAttributes:mySettings]是一个全局配置,所以这就是为什么在其他视图控制器中更改它不起作用的原因。我相信您不会绕过自定义titleView导航项的属性,...:/

您可以通过创建具有所需设置的 UILabel 来执行此操作,然后将其分配给属性:

 NSAttributedString *title = [[NSAttributedString alloc] string:"the title" attributes:mySettings];
 UILabel *newTitleView = [[UILabel alloc] init];
 newTitleView.attributedText = title;
 self.navigationItem.titleView = newTitleView; 
于 2014-10-05T19:30:25.453 回答