UINavigationController
には3つのviewControllerがあります。私たちは、3つのViewControllerが共通のナビゲーションバーを共有していることを知っています。navigationBar
を完全に透明に設定したい場合。私はviewWillAppear
でコードを置くことができます。透明なUINavigationbarを表示すると、スクロールするときに黒いバーが表示されます。
[self.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];
[self.navigationBar setShadowImage:[UIImage new]];
[self.navigationBar setBarTintColor:[UIColor clearColor]];
self.navigationBar.translucent = YES;
とviewWillDisappear
に戻ってそれを設定します。
[self setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];
[self setShadowImage:nil];
[self setBarTintColor:THEME_COLOR];
self.translucent = NO;
を私はviewControllerBでUINavigationBar
半透明を設定したいので、私はviewControllerBでコードを置きます。しかし、私はpopToViewController B、私は画面の右上に黒いバーが表示されます。 viewWillAppear
が呼び出されているため。私の場合は解決できないようです。
私はいくつかの方法で出てくる:
- は異なる
UINavigationBar
を使用しています。 - 使用違う
UINavigationController
。しかし、UINavigationController
は新しくプッシュできませんUINavigationController
- カスタム
UIView
はUINavigationBar
です。
私はmethosの上に、より複雑だと思います。
任意のアイデアのおかげ!
'ViewControllerB'と' ViewControllerC'のコードを入れてください –
'viewWillAppear'が呼び出されたので、私の言うことを理解できません。私の場合は解決できないようです。あなたはそれを別に言い返すことができますか?そして、画面の右上に黒いバーの画像を追加できますか?あなたは画面上部全体にバーが表示されないことは奇妙に思えます。 – Palpatim