Add 2 files to the project, name them UINavigationBar-CustomTexture.hand UINavigationBar-CustomTexture.m, for example, put this in these files:
.h file:
#import <UIKit/UIKit.h>
@interface UINavigationBar (CustomTexture)
@end
.m file:
#import "UINavigationBar-CustomTexture.h"
@interface UIView (CustomTexture)
- (void)drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx;
@end
@implementation UINavigationBar (CustomTexture)
- (void)drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx {
if ([self isMemberOfClass:[UINavigationBar class]]){
UIImage *image = [UIImage imageNamed:@"myImage.png"];
CGContextScaleCTM(ctx, 1.0f, -1.0f);
CGContextDrawImage(ctx, CGRectMake(0, -image.size.height, self.frame.size.width, self.frame.size.height), image.CGImage);
}else{
[super drawLayer:layer inContext:ctx];
}
}
@end
Include the .h file where you create your navigation controller. Make your png file 320x44. Depending on your texture, change the hue of the navigation bar to something like this (so that the buttons on the navigation bar look better):
[self.navigationController.navigationBar setTintColor:[UIColor colorWithHue:0 saturation:0 brightness:0.5f alpha:0.1f]]