第6章 控制器 所谓控制器就是能够管理和控制各种操作的设备。在iPhone开发中有八种控制器分别为:View Controller、Object、Table View Controller、Tab Bar Controller、Page View Controller、External Object、Navigation Controller、CLKit View Controller。本章主要为大家讲解View Controller、Navigation Controller和Tab Bar Controller这三种重要的控制器。
6.1 视图控制器 View Controlle控制器被称为视图控制器。因为它是整个应用程的枢纽,每一个视图至少有一个视图控制器,所以我们在前面的程序开发中都用到了一个视图控制器。本节主要讲解视图控制器的创建和使用。
6.1.1 视图控制器的添加 由于前面创建的类型为Single View AppLication的项目,本身就带有一个视图控制器。所以,我们创建一个没有控制器的视图Empty Application。
6.1.2 视图控制器的使用 我们将视图控制器添加完成以后,就可以使用创建该视图控制器用来使用啦。
1.视图控制器的创建 要想使用添加的视图控制器,必须将该视图创建器进行创建。
2.定义根视图 根视图可以是一个普通的UIView对象,它包含着一个或多个子视图,根视图也可以是一个标准系统视图,也可是你自己定义的视图。
6.1.3 视图的切换 视图的切换我们曾在第二章中为大家讲解过,可是我们在创建项目文件使用的是“Single View AppLication”类型。现在我们使用Empty AppLication类型来创建项目,在项目中也能实现两个视图的切换。
6.1.4 视图的旋转 视图控制器很大一部分功能是处理如何旋转视图的。在iOS 6中,使用supportedInterfaceOrientations()和shouldAutorotate()两个方法来实现旋转的,在没有重写该方法之前,我们的iPhone Simulator是可以旋转的。
6.1.4 视图的旋转
6.2 导航控制器 NavigationController又名导航控制器,是UIViewController的子类,包含在UIKIt框架中。在iPhone的很多应用程序中都会看到导航视图。本节将主要为大家讲解导航控制器的相关方面的内容
6.2.1 导航控制器和视图控制器的关系 导航控制器的作用是控制一些视图控制器的,从而控制整个应用程序的数据流和控制流。在导航控制器中所管理的视图控制器之间是分层的关系,为了管理这些视图控制器,导航控制器采用了堆栈的方式进行管理。
6.2.1 导航控制器和视图控制器的关系
6.2.2 导航控制器的显示 我们要想实现导航控制器的显示需要做到以下两步。
1.创建导航控制器 一般导航控制器是和根视图控制器一起创建的。视图控制器的创建我们已在上一节中学习过了,现在我们来看导航控制器的创建。
2.在window下显示 我们创建好导航控制器后,单击“Run”按钮是不会出现任何结果的。我们必须要将导航控制器放在window下才能显示。
6.2.3 在导航栏的设置 现在我们的显示的导航栏只是一个空壳,要想要导航栏的效果更佳,我们就要对导航栏进行设置。
1.添加标题 为了让用户理解导航栏的作用,需要在导航栏中添加一个标题。此时,我们可以使用title或者titleView。其中title表示一个字符串,titleView表示一个UIView。通常我们设置的是视图控制器的标题。系统将设置导航控制器的标题。我们刚才说到导航控制器采用了堆栈的方式进行视图控制器管理的,所以我们要将视图控制器采用pushViewController()方法放入堆栈中。
1.添加标题
2.添加按钮 添加按钮以前要创建一个UIBarButtonItem。UIBarButtonItem的功能是实现各种按钮。
2.添加按钮 方法 功能 rightBarButtonItem 一个显示在导航栏右边的UIBarButtonIterm backBarButtonItem 对默认按钮进行修改 leftBarButtonItem 一个显示在导航栏左边的UIBarButtonIterm,如果出现他则代替一般的回退键
6.2.4 导航控制器的应用 以上内容我们说明了如何将一个导航控制器显示和导航栏中的一些设置。现在我们来实现导航控制器的应用。
6.3 标签栏控制器 TabBarController称为标签栏控制器。它与导航控制器一样,也是用来控制多个界面之间导航的。我们要切换不同的视图控制器,也可以对屏幕底部的标签栏进行切换。本节将主要为大家讲解标签栏的创建和与导航视图之间的应用。
6.3.1 使用项目类型Tabbed Applacation创建标签栏控制器
1.创建 我们在创建项目时,将项目类型的Single View AppLication改为Tabbed Applacation。单击“Next”按钮,在弹出的项目设置中输入项目名等内容,再单击“Next”按钮,在弹出的保存位置中单击“Create”按钮。这样将创建好了标签栏。
2.添加标签栏的条目 在很多时候,我们的标签栏条目不只两个,现在我们就为大家讲解如图添加标签栏的条目。
6.3.2 使用代码创建标签栏控制器 使用代码创建标签栏之前,我们要创建一个项目类型为Single View AppLication的项目。
1.添加条目的标题 在图6.46所示运行结果中,我们已经讲标签栏控制器显示在了iPhone Simulator模拟器上了。可是现在我们并看不出任何效果,所以我们将要使用title为标签栏的条目加上标题。
2.将视图控制器添加到标签栏控制器中 在学习导航控制器时,我们说过,将要使用的视图控制器添加到导航视图中才能使用。现在也一样,将视图控制器添加到标签栏控制器中才可以控制视图控制器。
3.为标签栏条目添加图形 在图6.51所示的运行程序中,我们只是有一个标签栏条目,所以不必添加图形。但是在iPhone开发中,并不是只有一个标签栏条目。为了区分这些条目,我们就为每一个标签条目添加图像。
6.3.3 标签栏控制器和导航控制器的应用 标签栏控制器和导航控制器时可以在一起使用的。以下我们就来实现这两个导航器的使用。
6.4 小结 本章主要为大家讲解了视图控制器、导航控制器、标签栏控制器的创建和使用。本章的重点在于视图的旋转、导航控制器和标签栏控制器的应用。学习完本章,希望读者可以独立的使用和设置这三种控制器。