如何在UINavigationController中更改不同的UINavigationBar样式?

时间:2016-06-23 02:20:28

标签: ios

我想在一个viewController中更改UINavigationBar的颜色和半透明度,而不会影响其他viewControllers。这似乎是不可能的,因为他们共享一个共同的UINavigationBar。一些类似的问题告诉我要更改UINavigationBarviewWillAppear的样式并将其恢复为viewWillDisappear。但我可以看到效果并不完美。我想知道后续应用程序如何才能做到这一点。它似乎没有共享UINavigationBar

enter image description here

2 个答案:

答案 0 :(得分:0)

因为这两个视图控制器位于不同的导航控制器中,每个控制器都允许不同的颜色。

答案 1 :(得分:0)

由于你想要做的只是改变颜色,你可以做以下事情:

只需为颜色变化设置动画:

-(void)viewWillDisappear:(BOOL)animated
{
    [UIView animateWithDuration: 0.8 animations:^{
        [self.navigationController.navigationBar setBarTintColor: [[UIColor orangeColor] colorWithAlphaComponent: 0.1]];
    }];
}

-(void)viewWillAppear:(BOOL)animated
{
    [UIView animateWithDuration: 0.8 animations:^{
        [self.navigationController.navigationBar setBarTintColor: [[UIColor whiteColor] colorWithAlphaComponent: 0.1]];
    }];
}

点击下面的GIF图示:

enter image description here