Iphone 将UINavigationBar背景图像更改为默认值-iOS 4.3
我使用重载方法更改Iphone 将UINavigationBar背景图像更改为默认值-iOS 4.3,iphone,objective-c,ios,uinavigationbar,Iphone,Objective C,Ios,Uinavigationbar,我使用重载方法更改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)];
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
但在某些UIViewController中,我需要删除此背景图像。我该怎么做呢?用这种方法测试
+ (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]]];
}
}
你可以看看。它正好解决了你面临的问题
还可以检查。您是否对UINavigationBar进行了子类化?我知道如何自定义我的导航栏。我需要以这种方式逆转这个动作测试,对我有效。[nBar setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];这是针对iOS 5:)我需要iOS 4.xNo,他解释了如何实现UINavigationBar子类,以及如何在横向和默认模式下更改UINavigationBar图像。我知道怎么做。我需要将UINavigationBar返回到UIBarStyleDefault。简单方法:self.navigationController.navigationBar.barStyle=UIBarStyleDefault;这无助于您需要对UINavigationBar进行子类化,而不是创建它的类别