将图像添加到iPhone导航栏

将图像添加到iPhone导航栏,iphone,ios,uinavigationcontroller,uitabbarcontroller,tabbar,Iphone,Ios,Uinavigationcontroller,Uitabbarcontroller,Tabbar,我想用自定义图像替换当前导航栏。我的代码的结构是一个选项卡栏控制器控制一组包含视图的导航控制器(选项卡栏控制器->导航控制器->视图)。我尝试在我的应用程序代理中使用此代码 @implementation UINavigationBar (UINavigationBarCategory) - (void)drawRect:(CGRect)rect { UIColor *color = [UIColor blackColor]; UIImage *img = [UIImage image

我想用自定义图像替换当前导航栏。我的代码的结构是一个选项卡栏控制器控制一组包含视图的导航控制器(选项卡栏控制器->导航控制器->视图)。我尝试在我的应用程序代理中使用此代码

@implementation UINavigationBar (UINavigationBarCategory)
- (void)drawRect:(CGRect)rect {
  UIColor *color = [UIColor blackColor];
  UIImage *img  = [UIImage imageNamed: @"nav.png"];
  [img drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
  self.tintColor = color;
}
@end

但它没有起作用。你知道为什么吗?我应该把它放在别的地方吗?谢谢

如果您使用的是iOS 5,则可以在初始化导航控制器(本例中为aNavigationController)时使用setBackgroundImage:


如果您使用的是iOS 5,则可以在初始化导航控制器(本例中为aNavigationController)时使用setBackgroundImage:


我不会使用类别。我将改为UINavigationBar子类。见此:


如果您针对iOS 5或更高版本,请使用@BJH的解决方案。

我不会使用类别。我将改为UINavigationBar子类。见此:

如果您的目标是iOS 5或更高版本,请改用@BJH的解决方案

[aNavigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"nav.png"] forBarMetrics:UIBarMetricsDefault];