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