导航控制器UINavigationController

(一)导航控制器:严格来说,导航控制器并不是视图控制器,只是一个专门来管理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    

 

posted @ 2016-09-01 10:05  三更小新  阅读(265)  评论(0编辑  收藏  举报