改变NavigationBar的背景颜色
去自定义NavigationBar的外观我们需要使用 appearance
// 整个bar都是红色的了
UINavigationBar.appearance().barTintColor = UIColor.redColor()
//barIem的颜色变成了白色原本默认蓝色
UINavigationBar.appearance().tintColor = UIColor.whiteColor()
//半透明
UINavigationBar.appearance().translucent = true
//UIbarStyle
UINavigationBar.appearance().barStyle = UIBarStyle.Default
改变NavigationBar Title的字体
if let barFont = UIFont(name: "AvenirNextCondensed-DemiBold", size: 22.0) {
UINavigationBar.appearance().titleTextAttributes =
[NSForegroundColorAttributeName:UIColor.whiteColor(), NSFontAttributeName:barFont]
}
改变返回按钮的文字
// 如果你想改变某个控制器的返回按钮样式
override func viewDidLoad() {
super.viewDidLoad()
// 返回按钮没有了文字,你可以去title里设定你自己需要的
self.navigationItem.backBarButtonItem = UIBarButtonItem(title: "", style: .Plain,
target: nil, action: nil)
}
使用图片作为导航栏标题
self.navigationItem.titleView = UIView("...")
添加多个栏按钮项目
希望添加导航栏的一侧不止一个栏按钮项目,无论是leftBarButtonItems和rightBarButtonItems 您在导航栏左侧/右侧指定自定义栏按钮项目。
let shareItem = UIBarButtonItem(image: UIImage(contentsOfFile: "iamge"), style: .Plain, target: self, action: "shareIem:")
let cameraItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Camera, target: self, action: "cameraItem:")
self.navigationItem.rightBarButtonItems = [shareItem,cameraItem]
最后说一下使用pushViewController切换到下一个视图时,navigation controller按照以下3条顺序更改导航栏的左侧按钮(本段摘自网络):
1、如果B视图有一个自定义的左侧按钮(leftBarButtonItem),则会显示这个自定义按钮;
2、如果B没有自定义按钮,但是A视图的backBarButtonItem属性有自定义项,则显示这个自定义项;
3、如果前2条都没有,则默认显示一个后退按钮,后退按钮的标题是A视图的标题;