【问题标题】: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。

那么,我怎样才能达到预期的效果呢?

【问题讨论】:

    标签: ios uinavigationbar


    【解决方案1】:

    所以,这个问题原来是duplicate。

    我还是不明白为什么导航栏没有从视图控制器中恢复...

    我只是在 UINavigationControllerDelegate 的navigationController:willShowViewController:animated: 方法中制作所有装饰物。

    【讨论】:

      猜你喜欢
      • 2015-07-22
      • 2020-08-12
      • 2019-03-31
      • 1970-01-01
      • 2018-11-12
      • 2016-03-04
      • 2015-05-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多