Вы можете просто добавить подвид (UIImageView) в navaigationBar, который является просто подклассом UIView.
UINavigationBar nb = [[UINavigationBar alloc]init];
[nb addSubview: foo];
[nb release];
Вот сообщение на форуме, в котором описывается, как объединить это в категорию: http://discussions.apple.com/thread.jspa?threadID=1649012&tstart=0
(дополнение к ответу Эндрю Джонсона)
Связанный пост Apple.com включает 3 или 4 различных решения, большинство из которых работают только "наполовину". Я думаю, что наиболее элегантным/эффективным из них является вот это:
@implementation UINavigationBar (CustomImage)
- (void)drawRect:(CGRect)rect {
UIImage *image = [UIImage imageNamed: @"NavigationBar.png"];
[image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
}
@end
НО... это не является хорошей практикой ObjC, чтобы сделать это категорией (это должно быть переопределение), и это имеет некоторые собственные проблемы.
Итак, более общее и мощное решение здесь:
http://samsoff.es/posts/customize-uikit-with-method-swizzling