引言 UIKit的概念
MVC是很多人学习App开发学习的第一种设计模式,深入理解其的含义与组成部分与相互配合,对学习开发有着至关重要的最要。本文简要介绍MVC设计模式与ViewController的相关概念,并说明Application Delegate的相关使用。
一 MVC设计模式
Xcode提出了一种架构范例,将应用程序分为三个相互联系的部分,即模型,视图和控制器(简称为MVC)。代码的每个部分执行特定的任务,并且仅将严格必要的信息传达给其他部分。下图说明了其中涉及的元素。
MVC架构
模型是应用程序必须处理的数据,视图是用户界面,由窗口及其视图组成,控制器是负责读取和处理数据以及更新和接收来自视图的输入的对象。管理数据的对象和视图未相互连接,它们将信息发送到控制器,并且控制器的代码决定如何处理它。这样可以重复使用。我们可以使用相同的代码来控制不同的视图,或者完全替换用户界面,而无需在程序的其余部分中更改一行代码。只要他们知道如何处理从其他对象接收的信息并作为响应返回正确的值,每个部分就保持独立。
这种结构是从几个对象创建的。该接口是从之前介绍的UIView对象创建的,这些对象连接到控制器对象(接口中的每个主视图一个),并且控制器对象连接到管理应用程序数据的对象。除了这些对象外,还有一个AppDelegate对象,UIApplication对象使用该对象与我们的代码进行通信。
应用程序循环和窗口是直接从的UIApplication和UIWindow类创建的,而其余对象则是由模板提供的文件和我们自己的代码创建的。下图显示了“导航器区域”,以及由Singe View Application模板生成的文件列表。
模板的基本文件
基础知识:Xcode将文件分组组织。组不是真实目录。我们应用程序的所有文件都存储在同一目录中,但是它们以组的形式组织,以帮助我们在导航器区域中找到它们。如果看不到文件,请单击导航器区域顶部的工具栏的第一个按钮(如图5-10所示),或转到屏幕顶部的“查看”菜单,选择“导航器”选项,然后单击“确定”。在Show Project Navigator上。
一个应用程序至少需要三个文件。有一个文件定义了UIApplication对象的委托,该委托将在应用程序循环和我们的代码之间建立通信(AppDelegate.swift),该文件定义了将控制初始主视图及其内容的对象(ViewController.swift) )以及定义对象的文件,这些对象将创建视图并代表界面的每个屏幕(Main.storyboard)。
二 Application Delegate
AppDelegate.swift。该文件定义了一个名为AppDelegate的类,以创建一个将成为UIApplication对象的委托的对象。创建之后,将AppDelegate对象分配给UIApplication对象的委托属性,并成为该对象与我们的代码之间的连接。
模板为此文件生成的代码包含一个称为window的属性和一些空方法。该属性只是对为我们的应用程序创建的UIWindow对象的引用,这些方法是此类遵循的UIApplicationDelegate协议定义的一些方法。
与应用程序相关的状态不同。在某个时刻,该应用程序可能正在前台运行,活动,不活动或在后台运行。例如,当用户点击应用程序的图标时,该应用程序即被加载并变为活动状态,但是如果用户稍后按下“主页”按钮以打开其他应用程序,则该应用程序的状态将变为“背景”。每次应用程序状态更改时,UIApplication对象都会在AppDelegate对象上调用一个方法,以使我们知道发生了什么。
以下是由UIApplicationDelegate协议定义的一些方法。
- application(UIApplication, didFinishLaunchingWithOptions: Dictionary)
这是第一个要执行的方法。调用它是为了让我们知道基本对象已被实例化,并且该应用已准备就绪。我们可以在此方法中编写准备应用程序所需的所有代码,例如声明初始值,创建或打开数据库,检查当前设置等。 - applicationWillResignActive(UIApplication)
当应用程序不活动时通常由于传入呼叫或消息而调用此方法。 - app