Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 将UINavigationBar背景图像更改为默认值-iOS 4.3_Iphone_Objective C_Ios_Uinavigationbar - Fatal编程技术网

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进行子类化,而不是创建它的类别