0

我的视图控制器的 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];
}

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

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

4

1 回答 1

1

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

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

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

[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"navbar_landscape.png"] forBarMetrics:UIBarMetricsLandscapePhone];
于 2012-11-25T23:14:21.033 回答