我有一個UINavigationController
與3個viewControllers。我們知道三個viewController共享一個通用導航欄。如果我想設置navigationBar
完全透明。我可以把代碼viewWillAppear
:顯示透明UINavigationbar將看到黑條時滑動viewController
[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;
我想設置UINavigationBar
半透明僅在viewControllerB,所以我把代碼viewControllerB。但是,當我popToViewController B,我可以看到屏幕右上方的黑色欄。由於調用了viewWillAppear
。這似乎不能解決我的情況。
我拿出一些方法:
- 使用不同
UINavigationBar
。 - 使用不同的
UINavigationController
。但UINavigationController
無法推送新的UINavigationController
- 自定義
UIView
像UINavigationBar
。
我覺得上面methos更爲複雜。
任何想法感謝!
把你的代碼'ViewControllerB'和'ViewControllerC' –
我不明白你的意思,「因爲'viewWillAppear'被調用,看起來不能解決我的情況。你能否以不同的方式重述?你可以在屏幕右上角添加黑條的圖像嗎?看起來很奇怪,你不會在屏幕的整個頂部看到橫條。 – Palpatim