一、导航视图控制器的基本概念
1、导航视图控制器的基本概念
(1)导航视图控制器(UINavigationController)是用于构建分层应用程序的主要工具,管理着多个内容视图的换入(压入)和换出(弹出)。自身提供了视图切换的动画效果。
(2)它的父类是UIViewController,是所有视图控制器的基类(如下图所示)。
(3)导航控制器是以栈的形式来实现。
二、栈的概念与性质
1、栈的基本概念和性质
栈是一种数据结构,采用一种先进后出(后进先出)的原则。导航控制器也是以栈的形式来管理控制器的,任何控制器都可以放入栈中。
(1)向栈中添加一个对象的操作称为入栈(push),即把对象推入到了栈里。
(2)我们把第一个入栈的对象,叫做基栈。
(3)我们把最后一个入栈的对象,叫做栈顶。
(4)我们在栈中删除一个对象的操作叫做出栈(pop)。
(5)当前显示的视图控制器,即为栈顶。选择“返回”时,这个视图控制器就出栈了。
三、导航控制器的基本样式
蓝色部分为:导航控制器的导航栏(NavigationBar);橙色部分为:控制器包含的内容视图(用户感兴趣的区域);绿色部分为:导航控制器的工具栏(UIToolBar);默认是隐藏的;这些视图共同构成了导航控制器。
四、导航控制器的结构图
1、控制器剖面图(如下图)
(1)导航栏在整个导航控制器的最上层,一般来说主要负责视图的弹出和控制主视图。
(2)中间位置是导航控制器显示的主视图区,是用户真在关心的区域,主要用于显示内容。
(3)最下层显示的视图是工具栏视图,控制器默认是将它隐藏。用户也可以自己添加工具栏。
2、导航控制器中视图元素尺寸
3、一个简单地导航控制器