PushViewController & 设置导航栏颜色和标题
Posted
技术标签:
【中文标题】PushViewController & 设置导航栏颜色和标题【英文标题】:PushViewController & set navigation bar color and title 【发布时间】:2015-12-17 21:28:50 【问题描述】:我在一个按钮中做了一个推送功能:
@IBAction func prodButton(sender: AnyObject)
let storyboard = UIStoryboard(name: "Main", bundle: nil)
var secondViewController = CollectionViewController()
secondViewController = storyboard.instantiateViewControllerWithIdentifier("CollectionViewController") as! CollectionViewController
self.navigationController?.pushViewController(secondViewController, animated: true)
这个按钮推送到 secondViewController 但是当我查看第二个视图控制器的导航栏时,我注意到它已经自动设置了一个后退按钮。问题是这个后退按钮的颜色是浅蓝色的,不符合我的设计。我试图在 viewDidAppear 中改变它
self.navigationItem.leftBarButtonItem?.tintColor = UIColor.redColor()
还有条形颜色:
self.navigationController?.navigationBar.barTintColor = UIColor(red: 65, green: 61, blue: 116, alpha: 1.0)
但没有任何变化。
如果有人帮助我,我将非常感激。
提前致谢。
【问题讨论】:
【参考方案1】:尝试设置你的颜色一次,以后到处都是相同的颜色:
let navBar = UINavigationBar.appearance()
navBar.tintColor = UIColor.redColor()
您应该将此代码放在 AppDelegate 中。如果你使用它,你也可以在 Storyboard 中设置 barTint。
【讨论】:
我试过了,但没用。感谢您的快速回答。 你在 secondViewController 中设置这一行对吗? 是的,在 viewDidAppear 中 是的,它似乎是只读的,我编辑了我的答案,它应该可以肯定:) 谢谢,但现在按钮和栏都是白色的。【参考方案2】:使用
//Func Alter color navigation bar
func AlteraCorNavigationBar(Navigation:UINavigationController)
Navigation.navigationBar.tintColor = CorTextoNavigationBar()
//Navigation.navigationBar.barTintColor = CorPredominante()
Navigation.navigationBar.titleTextAttributes = [NSForegroundColorAttributeName : CorTextoNavigationBar(), NSFontAttributeName : UIFont(name: "ArialHebrew-Light", size: 22)!]
//func CorPredominante()->UIColor
//return UIColor.redColor()
//(rgba: "#ecf0f1")
// YOU CAN LIBRARY COLOR RGBA [HERE][1] AND USE UIColor(rgba: "#b6011a")
//
func CorTextoNavigationBar()->UIColor
return UIColor(red: 65, green: 61, blue: 116, alpha: 1.0)
在视图控制器中调用:
class NewViewController: UIViewController
override func viewDidLoad()
super.viewDidLoad()
AlteraCorNavigationBar(navigationController)
【讨论】:
我不知道为什么,但是当我输入UIColor(red: 65, green: 61, blue: 116, alpha: 1.0)
时,颜色是白色的。当我说出确切的颜色UIColor.redColor()
时,它可以正常工作。
使用这个:navigationBar.tintColor = UIColor(red: 65, green: 61, blue: 116, alpha: 1.0) navigationBar.titleTextAttributes = [NSForegroundColorAttributeName : UIColor(red: 65, green: 61,蓝色:116,alpha:1.0),NSFontAttributeName:UIFont(名称:“ArialHebrew-Light”,大小:22)!]
谢谢。这只会将后退按钮更改为白色,栏保持默认。您知道如何将按钮文本从“返回”更改为其他内容吗?
这会改变后退按钮和标题。
要更改按钮文本,您必须转到情节提要并单击导航栏的视图,您将返回而不是您是谁,然后在“属性检查器”中更改文本后退按钮“【参考方案3】:
我发现了错误。 颜色应除以 255:
UINavigationBar.appearance().tintColor = UIColor(red: 149.0 / 255.0, green: 148.0 / 255.0, blue: 192.0 / 255.0, alpha: 0.5)
UINavigationBar.appearance().barTintColor = UIColor(red: 65.0 / 255.0, green: 61.0 / 255.0, blue: 116.0 / 255.0, alpha: 1.0)
谢谢大家的帮助;)
【讨论】:
以上是关于PushViewController & 设置导航栏颜色和标题的主要内容,如果未能解决你的问题,请参考以下文章
如何在不使用 pushviewcontroller 的情况下制作“pushviewcontroller”动画?
SwiftUI - 使用“pushViewController”时出现致命错误
pushViewController 和 showViewController 的区别