页面加载后更改 barTintColor

Posted

技术标签:

【中文标题】页面加载后更改 barTintColor【英文标题】:Change the barTintColor after page load 【发布时间】:2014-02-01 19:36:43 【问题描述】:

我的应用中的每个视图都有不同的颜色。设置这种颜色效果很好。但是,当我推送到下一个视图(使用它自己的颜色)然后返回到上一个视图时。根视图的导航栏 BarTintColor 设置为我推送到的视图。

例如:Root view (红色) > About view (绿色) >(返回根目录)Root view (绿色)

当页面已经加载时,如何设置barTintColor?我已经使用- (void)viewWillAppear:(BOOL)animated 尝试过,但它并没有变回来。

【问题讨论】:

【参考方案1】:

在您的每个视图控制器上,您可以在viewDidAppear: 方法中使用以下代码:

    [self.navigationController.navigationBar setBarTintColor:[UIColor redColor]]; // Your Desired Color
    [self.navigationController.navigationBar setNeedsDisplay];

【讨论】:

在建议之前测试了示例项目中的代码;) [self.navigationController.navigationBar setNeedsDisplay]; 添加到我的viewWillAppear 就足够了。谢谢=)【参考方案2】:

也许使用一种 Unwind Segue 机制(例如将 unwind segue 放在您的 prepareForSegue: 中,或者使用委托并在您的 unwind 发生之前执行它...有意义还是我需要更深入?

【讨论】:

感谢您的提示。我不使用 Storyboard,因为我真的不喜欢 Storyboard。这是一个很好的概念,但在我看来,Apple 还没有实现它。

以上是关于页面加载后更改 barTintColor的主要内容,如果未能解决你的问题,请参考以下文章

页面加载后更改 HTML 代码(使用 jQuery?)

Vue:在路线更改时,仅在完成加载后才呈现页面

数据库更改后使用 Javascript 重新加载页面

动态控件更改后“无法加载 ViewState”

更改字体时基于页面的加载 epub

html使用frameset连接页面jquery报错