首页 > 代码库 > UI第八课

UI第八课

主要内容:UINavigationController、定制UINavigationBar、界面间通信(属性传值、代理传值)

一、UINavigationController

       UINavigationController:导航控制器,是iOS中最常用的多视图控制器之一,它用来管理多个视图控制器

       注意:

               1、导航控制器可以认为是管理控制器的控制器,主要管理有层级关系的控制器

               2、UINavigationController继承与UIController,以栈的方式管理所控制的视图控制器,至少要有一个被管理的视图控制器,这个视图控制器,我们称之为导航控制器的跟视图控制器

       工作原理:

              UINavigationController通过栈的方式管理控制器的切换,控制入栈和出栈来展示各个视图控制器

              UINavigationController的ContentView里始终显示栈顶控制器的View

              viewControllers属性存储了栈中所有被管理的控制器

              UINavigationController属性,父类中的属性,每个在栈中的控制器,都能通过此属性,获取自己所在的UINavigationController对象

       入栈和出栈:

              pushViewController: animated        / /  进入下一个视图控制器

              popViewControllerAnimated:          / /  返回上一个视图控制器

              popToViewController: animated     / /   返回到指定的视图控制器

              popToRootViewControllerAnimated     / /   返回到跟视图控制器

      常用属性

              viewControllers                 / /  所有处于栈中的控制器

              topViewController             / /  位于栈顶的控制器

              visibleViewController        / /  当前正在显示的控制器

              navigationBar                   / /  导航条

二、navigationBar

       navigationBar:导航条,iOS7之后是默认透明的之前是不透明的

       navigationBar在透明情况时,与contentView会重合一部分区域

       navigationBar在不透明时,contentView在navigationBar的下面

       注意:navigationBar在竖屏状态下默认高度是44,横屏状态下默认高度是32

       常用

              barTintColor      / / 设置导航条的颜色

              setBackgroundImage: forBarMetrics:   / / 导航条加背景图片

       UINavigationBar也是以栈的方式管理一组UINavigationItem,提供push和pop操作item

       注意:每个视图控制器都有一个navigationItem属性,navigationItem中设置的左按钮、右按钮标题等,会随着控制器的显示,显示到navigationBar上

UI第八课