UINavigationBar更改默认字体颜色

时间:2012-07-01 00:05:16

标签: iphone objective-c ios hook

我正在尝试编写一个移动基板调整来修改应用程序在UINavigationBar标题和按钮中使用的默认字体颜色, 例如除了导航栏中的默认白色标题,所有白色导航栏文本都将变为红色,

希望这是有道理的。

目前我正在尝试:

%hood UINavigationBar
-(void)setTitleView:(id)arg1 {
    %orig
    UILabel *titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 320, 30)];
    titleLabel.textColor = [UIColor redColor]
}
%end

我觉得它是因为我试图设置一个新的UILabel,而不是替换被拉的默认setTitleView。

任何帮助将不胜感激:)

提前致谢!

1 个答案:

答案 0 :(得分:0)

在iOS 5+中,有一种使用UIAppearance协议执行此操作的新方法。有一个关于如何使用它的好教程here

如果您仍然需要支持iOS 4,则可以创建UIViewController的子类并覆盖各种init*方法,以便在创建类时设置属性,或者在viewDidLoadviewWillAppear { {1}}等等。然后,您的所有控制器都可以直接继承而不是UIViewController

还有其他方法可以做到这一点,例如在UIViewController上添加类别方法或调整其方法 - 但我认为以上是最简单的方法。