ios - 将导航堆栈中每个 ViewController 的导航栏色调/颜色更改为不同的值

标签 ios objective-c uiviewcontroller uinavigationcontroller uinavigationbar

好吧,这是一个我似乎无法弄清楚的奇怪问题,而且这里的任何答案似乎都没有解决,至少就我能找到的而言......

我有一个导航 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/

相关文章:

iOS presentViewController 无法正常工作

ios - Xcode 8 在 iOS 9.2 及以下版本上构建崩溃

iphone - 如何创建类似于 iOS 联系人应用程序的 UITableView?

ios - getControlPointAtIndex 参数类型

iphone - 在 iPhone 上的 Facebook 上分享来自 bundle 和链接的图像

objective-c - 在 iOS 中从 parentViewController 调用 SEL

ios - Xcode 项目(从 gi​​thub 下载的 zip)构建,但我在模拟器中出现黑屏

javascript - iOS webview 无法使用历史记录返回

iOS 9 多任务功能启用但限制 iPhone 应用程序仅支持纵向模式

ios -/Applications/Xcode.app/Contents/Developer/usr/bin/ibtool 失败,退出代码为 255