我想要的是覆盖UINavigationBar tintColor setter并强制它的默认颜色。贝娄是我的代码(当然失败了)。有没有办法让它发挥作用?
@implementation UINavigationBar (UINavigationBarCategory)
- (void)setTintColor:(UIColor *)tint {
self.tintColor = [UIColor greenColor];
}
@end
答案 0 :(得分:2)
(我在这里使用property
作为通用术语,在您的示例中,它是tintColor
的替身
我认为您不能在self.property =
方法中使用setProperty:
语法进行分配。 self.property
只是[self setProperty:<value>]
的别名,它将以递归方式调用自身。
你必须做这样的事情:
- (void)setProperty:(id)pProperty {
[property autorelease];
property = [pProperty retain];
}
我仍然不能100%确定你想要做的事情会起作用,但前面是一个开始。
答案 1 :(得分:1)
如果要强制使用NavigationBar的默认颜色,为什么不在视图控制器的viewDidLoad / viewDidAppear中设置色调颜色??
self.navigationController.navigationBar.tintColor = [UIColor (color you want)];