页面加载后更改 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的主要内容,如果未能解决你的问题,请参考以下文章