我使用重载方法更改UINavigationBar
背景图片
@implementation UINavigationBar (Background)
-(void) drawRect:(CGRect)rect
{
UIImage *image = [UIImage imageNamed:@"Header.png"];
[image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
}
@end
但在某些UIViewControllers中,我需要删除此背景图像。我怎么能这样做?
答案 0 :(得分:2)
您可以查看this blog post from Sebastian Celis。它完全解决了您面临的问题。
也许还要检查this。
答案 1 :(得分:0)
以这种方式测试
+ (void)setNavigationbarBackground:(UINavigationBar *)nBar imageName:(NSString *)imgName {
if([nBar respondsToSelector:@selector(setBackgroundImage:forBarMetrics:)]) {
[nBar setBackgroundImage:[UIImage imageNamed:imgName] forBarMetrics:UIBarMetricsDefault];
} else {
[nBar setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:imgName]]];
}
}