导航栏中的清晰背景图像

时间:2012-11-25 22:52:35

标签: objective-c ios cocoa-touch ios5 ios4

我的视图控制器中的viewWillAppear中有以下代码。

- (void) viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];

    UIImage *image = [UIImage imageNamed:@"navbar.png"];
    UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
    [self.navigationController.navigationBar addSubview:imageView];
}

如上面的代码中所示,如何在添加新导航栏图像之前清除已存在的导航栏背景图像?

另外,如何以最有效的方式为每个不同的控制器设置不同的导航栏背景图像?谢谢!

1 个答案:

答案 0 :(得分:1)

在viewWillAppear方法中,使用以下调用来设置导航栏的背景图像。

[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"navbar.png"] forBarMetrics:UIBarMetricsDefault];

如果您的应用也支持横向,则还需要为横向导航栏设置不同高度的背景图像:

[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"navbar_landscape.png"] forBarMetrics:UIBarMetricsLandscapePhone];