好吧,这是一个我似乎无法弄清楚的奇怪问题,而且这里的任何答案似乎都没有解决,至少就我能找到的而言......
我有一个导航 Controller ,其中有 4 个 Push Segues 进入新的 ViewController。 我希望每个 View 的导航栏的外观都具有不同的颜色。
我看到的是,当我第一次进入堆栈中的 VC 时,它就被覆盖了,从那时起我就无法更新它了。
在我的演示 VC 中,我这样做(使导航栏清晰/不可见)
[self.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];
self.navigationController.navigationBar.shadowImage = [UIImage new];
[self.navigationController.navigationBar setBackgroundColor:[UIColor clearColor]];
然后在我推送的 VC 中,我将背景颜色更改为不同的颜色...
[self.navigationController.navigationBar setBackgroundColor:bgColor];
当我按回键进入呈现的 VC 时,推送的 VC 的颜色仍然存在...
有什么想法吗?
最佳答案
哦。愚蠢的错误,但在这里为社区发布答案。
我的导航栏代码位于 viewDidLoad 中,如果它是导航 Controller 中呈现的 ViewController,那么它当然永远不会再次被调用...
将代码移至 viewWillAppear 修复了该问题。
断点救援!
关于ios - 将导航堆栈中每个 ViewController 的导航栏色调/颜色更改为不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26293216/