Лучшая точка для перезаписи свойства navigationBar в navigationController - PullRequest
0 голосов
/ 31 мая 2010

Я перезаписываю UINavigationController, чтобы заменить свойство navigationBar по умолчанию экземпляром моего собственного подкласса UINavigationBar.Поэтому я попробовал что-то вроде

_navigationBar = [[SBNavigationBar alloc] init];

в моем -initWithRootViewController:.Но это не сработало, как я ожидал.По-прежнему отображается значение по умолчанию navigationBar.

Итак, что лучше всего перезаписать navigationBar?

Заранее спасибо
–f

1 Ответ

1 голос
/ 03 июня 2010

Если вы посмотрите документацию http://developer.apple.com/iphone/library/documentation/uikit/reference/UINavigationController_Class/Reference/Reference.html,, вы увидите, что свойство navigationBar имеет значение только для чтения .

Чтобы иметь пользовательский navigationBar, вы можете использовать Категории, например. Вы найдете много вопросов, отвечающих на это здесь, на stackoverflow .

Одна простая версия помещает изображение в drawRect: вот так ...

@implementation UINavigationBar (Custom)

- (void)drawRect:(CGRect)rect {
    UIImage *image = [UIImage imageNamed: @"bg_toolbar.png"];
    [image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
}

@end
...