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 に答える