UI第十二课

主要内容:模态、单例

一、模态viewController

程序中切换页面,可以使用UINavigationController,通过导航功能控制页面的切换

但是某种情况下,我们可以使用视图控制器的一对方法实现页面的切换

presentViewController: animated: completion:  / / 展现新的页面

dismissViewControllerAnimated: completion:   / /  从新的页面返回

通过这种方法显示的controller被称为模态视图控制器(注意:模态视图控制器不是一个类,只是一种方式显示的controller)

属性设置:

modalPresentationStyle:   模态controller显示对象

modalTransitionStyle:       模态显示动画样式

二、单例对象

单:唯一性

例:实例对象,即使用某个类创建的对象是程序中唯一的实例对象(注意:通常每次alloc创建的对象都是不同的)

使用方法:

1、定义单例类

2、定义创建单例对象的方法(类方法)

3、根据需要实现伪单例或者完整单例

注意:

1、操作单例对象的变量存储在静态区,程序关闭后由系统自动收回

2、单例对象存在堆区,不释放,程序关闭后由系统自动收回

3、变量和单例对象的生命周期与程序同步

优势:

1、在内存中只有一个对象,节省内存空间

2、避免频繁的创建销毁对象,可以提高性能

3、避免对共享资源的多重占用

4、可以全局访问

5、降低模块之间的耦合度,降低代码的复杂度

三、单例模式

单例模式:设计模式

a:什么是需求

b:如何分析需求

c:如何进行框架设计

开发过程:

需求分析:重要阶段,为项目开发打下良好的基础

软件设计:为软件编写打下基础,封装、模块化、低耦合、可维护、可扩展

软件编写 - > 软件测试 - >运行维护

四、通讯录

分析需求

1、界面的个数

所有联系人列表页面

添加联系人信息页面

查看联系人详情页面

2、界面的逻辑

所有联系人界面  ->添加联系人界面

所有联系人界面  ->查看联系人详情页面

添加联系人页面  ->所有联系人界面

查看联系人页面  ->所有联系人界面

五、如何进行框架设计

A:项目界面框架步骤

1、根据项目的界面个数创建出相对应的控制器

2、根据项目的页面逻辑创建出每个视图控制器上对应的切换方法

3、根据页面的功能创建每个视图控制器上对应的功能方法

B:项目框架设计

1、根据项目内界面功能设计程序内需要的数据结构

2、根据项目内的界面内容设计程序内每个视图控制器需要的数据对象

3、根据项目内的界面逻辑设计程序内视图控制器切换过程中需要的参数对象

时间: 2024-10-21 01:04:49

UI第十二课的相关文章

Kali Linux Web 渗透测试— 第十二课-websploit

Kali Linux Web 渗透测试— 第十二课-websploit 文/玄魂 目录 Kali Linux Web 渗透测试— 第十二课-websploit............................................... 1 Websploit 简介........................................................................................... 2 主要功能...........

NeHe OpenGL教程 第四十二课:多重视口

转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线教程的编写,以及yarn的翻译整理表示感谢. NeHe OpenGL第四十二课:多重视口 多重视口 画中画效果,很酷吧.使用视口它变得很简单,但渲染四次可会大大降低你的显示速度哦:) 欢迎来到充满趣味的另一课.这次我将向你展示怎样在单个窗口内显示多个视口.这些视口在窗口模式下能正确的调整大小.其中有

NeHe OpenGL教程 第二十二课:凹凸映射

转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线教程的编写,以及yarn的翻译整理表示感谢. NeHe OpenGL第二十二课:凹凸映射 凹凸映射,多重纹理扩展: 这是一课高级教程,请确信你对基本知识已经非常了解了.这一课是基于第六课的代码的,它将建立一个非常酷的立体纹理效果. 这一课由Jens Schneider所写,它基本上是由第6课改写而来

NeHe OpenGL教程 第十二课:显示列表

转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线教程的编写,以及yarn的翻译整理表示感谢. NeHe OpenGL第十二课:显示列表 显示列表: 想知道如何加速你的OpenGL程序么?这一课将告诉你如何使用OpenGL的显示列表,它通过预编译OpenGL命令来加速你的程序,并可以为你省去很多重复的代码. 这次我将教你如何使用显示列表,显示列表将

【C++探索之旅】第一部分第十二课:指针一出,谁与争锋

内容简介 1.第一部分第十二课:指针一出,谁与争锋 2.第一部分第十三课预告:第一部分小测验 指针一出,谁与争锋 上一课<[C++探索之旅]第一部分第十一课:小练习,猜单词>中,我们用一个小游戏来总结了之前几课学习的知识点. 现在,终于来到第一部分的最后一个知识点了,也是C++的基础部分的最后一个讲题.之后进入第二部分,就会开始面向对象之旅.因此,这一课也注定不平凡.系好安全带吧,因为马力要加足了! 指针这个C系语言的难点(著名的C语言里也有指针),令无数英雄"尽折腰",也

第三十二课 二维数组及其定义 【项目1-2】

第三十二课  二维数组及其定义 项目一 [折腾二维数组] 创建一个5行4列的二维整型数组,通过初始化,为数组中的前两列的10个元素赋初值,然后: 通过键盘输入,使后两列的10个元素获得值: 按行序优先输出数组元素: 将所有元素值乘以3后保存在数组中: 按列序优先输出(输出的第一行是数组中的第一列--,其实输出的就是"转置"): 将数组"倒"着输出(即最后一行最后一列的最先输出,第0行第0列的最后输出): 输出数组中的所有偶数: 输出所有行列下标之和为3的倍数的元素值

linux就该这么学第十二课

linux就该这么学第十二课 Apache 美国 Nginx 俄罗斯 极限挑战: 128M linux+网站 64M linux+网站 32M linux+网站 网站报错:500 502 硬件资源超负荷 LAMP linux apache mysql php LNMP linux nginx mysql php 光盘永久挂载 /dev/cdrom /media/cdrom iso9660 defaults 0 0 安装httpd服务 即apche服务 网站数据存放路径:/var/www/html

2018-07-30 第三十二课

第三十二次课 shell编程(二) 目录 十五.shell中的函数 十六.shell中的数组 十七.告警系统需求分析 十八.告警系统主脚本 十九.告警系统配置文件 二十.告警系统监控项目 二十一.告警系统邮件引擎 二十二.运行告警系统 十五.shell中的函数 函数就是把一段代码整理到了一个小单元中,并给这个小单元起一个名字,当用到这段代码时直接调用这个小单元的名字即可.定义函数必须要放在最前面.定义好的函数相当于是命令. 语法格式 //name属性定义了赋予函数的唯一名称.脚本中定义的每个函数

斯坦福第十二课:支持向量机(Support Vector Machines)

12.1  优化目标 12.2  大边界的直观理解 12.3  数学背后的大边界分类(可选) 12.4  核函数 1 12.5  核函数 2 12.6  使用支持向量机 12.1  优化目标 到目前为止,你已经见过一系列不同的学习算法.在监督学习中,许多学习算法的性能都非常类似,因此,重要的不是你该选择使用学习算法 A 还是学习算法 B,而更重要的是, 应用这些算法时,所创建的大量数据在应用这些算法时,表现情况通常依赖于你的水平.比 如:你为学习算法所设计的特征量的选择,以及如何选择正则化参数,