Можно ли принудительно установить значение в установщике свойств? - PullRequest
0 голосов
/ 21 января 2010

То, что я хочу, это переопределить UINavigationBar tintColor setter и установить для него цвет по умолчанию. Ниже - мой код (который, конечно, не работает). Есть ли способ заставить его работать?

@implementation UINavigationBar (UINavigationBarCategory)
- (void)setTintColor:(UIColor *)tint {
self.tintColor = [UIColor greenColor];
}
@end

Ответы [ 2 ]

2 голосов
/ 21 января 2010

(здесь я использую property в качестве общего термина, в вашем примере это заменитель tintColor)

Не думаю, что вы можете использовать синтаксис self.property = для назначения внутри метода setProperty:. self.property это просто псевдоним для [self setProperty:<value>], и он будет рекурсивно вызывать себя.

Вам нужно будет сделать что-то вроде этого:

- (void)setProperty:(id)pProperty {
     [property autorelease];

     property = [pProperty retain];
}

Я все еще не уверен на 100%, что вы пытаетесь сделать, сработает, но все вышесказанное - начало.

1 голос
/ 21 января 2010

Если вы хотите установить цвет по умолчанию для NavigationBar, почему бы вам не установить цвет оттенка в viewDidLoad / viewDidAppear вашего контроллера представления ??

self.navigationController.navigationBar.tintColor = [UIColor (color you want)];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...