切换导航栏背景图像/颜色[重复]
Posted
技术标签:
【中文标题】切换导航栏背景图像/颜色[重复]【英文标题】:Toggle navigation bar background image/color [duplicate] 【发布时间】:2017-02-21 15:43:04 【问题描述】:我的应用程序中的一个场景应该有透明的导航栏,其他的 - 没有。
所以,当进入场景时,我试图获取当前导航栏的属性并在退出时恢复它们。
- (void)viewWillAppear:(BOOL)animated
[super viewWillAppear:animated];
navigationBarBackgroundImage = [self.navigationController.navigationBar backgroundImageForBarMetrics:UIBarMetricsDefault];
navigationBarShadowImage = self.navigationController.navigationBar.shadowImage;
[self.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];
self.navigationController.navigationBar.shadowImage = [UIImage new];
self.navigationController.navigationBar.translucent = YES;
- (void)viewWillDisappear:(BOOL)animated
[super viewWillDisappear:animated];
[self.navigationController.navigationBar setBackgroundImage:navigationBarBackgroundImage forBarMetrics:UIBarMetricsDefault];
self.navigationController.navigationBar.shadowImage = navigationBarShadowImage;
self.navigationController.navigationBar.translucent = NO;
突然间,它停止工作了……现在,我得到了背景和阴影图像的 NULL。
那么,我怎样才能达到预期的效果呢?
【问题讨论】:
【参考方案1】:所以,这个问题原来是duplicate。
我还是不明白为什么导航栏没有从视图控制器中恢复...
我只是在 UINavigationControllerDelegate 的navigationController:willShowViewController:animated:
方法中制作所有装饰物。
【讨论】:
以上是关于切换导航栏背景图像/颜色[重复]的主要内容,如果未能解决你的问题,请参考以下文章