0

ご挨拶!**UINavigationBar's barStyleUIBarStyleBlackに設定し、tintColorを色 (色/グラデーションを実現するために黒以外) に設定しました。そのくらいうまくいきます。

さて...新しいView Controllerをnav Controllerスタックにプッシュするとしましょう。この特定の VC で、ナビゲーション バーを黒くしたいのですが、この VC 内でのみです。

そこで、新しい VC のviewWillAppear:メソッドで、ナビゲーション バーのtintColorを nil (または[UIColor blackColor] - どちらでも機能) に設定します。viewWillDisappear :で、tintColorを元の状態に戻します。繰り返しますが、すべて順調です。

新しい VC にもう一度 (または追加で) 戻るまで。これを行うと、ナビゲーション バーが再び黒くなりますが、左バー ボタンの項目は変わりません! 代わりに、親 VC の元の色を保持します。

私はあらゆる種類のサンプルコードを見てきました (Joe Hewitt の Three20 ライブラリでさえ、私が Photo コントローラー/ブラウザーに対して行っているのと同じことをしているように見えます)。私が知る限り、私はすべて正しいことをしていますが、新しい VC に初めて入るとき以外は、バー ボタンの項目が黒に変更されない理由について困惑しています。

手がかりは歓迎/感謝します!

4

3 に答える 3

0

PARENTViewControllerに追加してみてください。

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

    UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"Back", @"") style:UIBarButtonItemStylePlain target:nil action:nil];
    [self.navigationItem setBackBarButtonItem:backButton];
    [backButton release];
}
于 2009-09-18T20:00:54.303 に答える
0
    for (UIView *view in self.navigationController.navigationBar.subviews)
    {
        [view setNeedsDisplay];
    }

それが役に立てば幸い。

于 2010-06-01T16:23:12.707 に答える
0

私が聞いたところでは、これは 3.0 の既知のバグです。

于 2009-08-11T18:25:21.217 に答える