(一)导航控制器:严格来说,导航控制器并不是视图控制器,只是一个专门来管理ViewController的容器类。采用堆栈的设计模式,先进后出,后进先出。push就是压栈,pop就是弹栈。
(二)导航栏:UINavigationBar:就是导航控制器上面那一栏。
// 设置导航栏的背景颜色 navigationController?.navigationBar.barTintColor = UIColor.orangeColor() // 设置导航栏的背景图片 参数3是设置横竖屏 navigationController?.navigationBar.setBackgroundImage(UIImage(named: "2"), forBarPosition: .Any, barMetrics: .Default)
(三)模型:UINavigationItem:这就是一个模型,设定了导航栏的各个属性状态。
(四)导航按钮:UIBarButtonItem:就是添加在导航栏上面的按钮。这里除了可以使用系统自带的按钮外,还完全可以自定义。
// 设置左按钮 navigationItem.leftBarButtonItem = UIBarButtonItem(barButtonSystemItem: .Play, target: nil, action: nil)
修改颜色:
// 颜色渲染 navigationController?.navigationBar.tintColor = UIColor.orangeColor()
如果自己写了左侧按钮,那么系统自带的pop就会消失,需要自定义。
(五)工具栏:导航控制器的工具栏在最下方,默认是隐藏的。
// 工具栏 navigationController?.toolbarHidden = false navigationController?.toolbar.barTintColor = UIColor.yellowColor()
(六)滑动时候自动隐藏:很多APP在滑动的时候,导航栏和工具栏都是隐藏的。例如读书软件和视频软件。
// 当设备横屏时候,自动隐藏 navigationController?.hidesBarsWhenVerticallyCompact = true // 当用胡单机屏幕时候,自动隐藏 navigationController?.hidesBarsOnTap = true // 当键盘弹起时候,自动隐藏 navigationController?.hidesBarsWhenKeyboardAppears = true // 当用户滑动时候,自动隐藏 navigationController?.hidesBarsOnSwipe = true
原文:http://www.cnblogs.com/sgxx/p/5828610.html