视图控制器、MVC、屏幕旋转、内存警告

使用视图控制器的步骤:

1、创建一个根视图控制器 aController

2、在AppDelegate中引用aController的头文件,并且指定AppDelegate的根视图控制器为aController,代码如图:

3、设置了AppDelegate的根视图控制器,但是aController视图控制器的默认视图是空白视图,并且背景色是透明色,所以如果想要显示内容,就有两种方法,一种是:直接在viewDidLoad方法中创建视图,并且添加到根视图上面(viewDidLoad是视图控制器自带的根视图加载完毕的方法)。第二种是:重写加载根视图的方法(loadView方法),我们通常在这个方法中指定我们想要的某个视图作为根视图,并且在视图控制器的生命周期,此方法只会走一次,在这个方法中,不能使用self.view的getter方法获取根视图。因为此视图正在加载,并没有真实存在

4、通常我们用第二种方法,因为第二种方法,分工更加的明确,视图只做呈现,控制器只做触发事件

5、用第二种方法的话,我们需要指定一个视图作为aController的根视图,所以创建一个视图作为TA的根视图

6、创建一个自定义视图作为TA的根视图就看第三篇的自定义视图,如创建bView

7、创建好视图之后,在loadView的方法重写中指定自己创建的视图为视图控制器的根视图,记得将其设置成为属性如:

8、可以在viewDidLoad中为视图中的控件添加事件

模态:页面之间的相互转换

页面之间的转换需要两个视图控制器:a,b

1、进入下一个界面b,为视图控制器中的视图中的button添加方法,在方法中先创建下一个界面的对象,在使用模态推出下一个页面,代码:

  

2、返回上一个界面,只需要在b控制器的视图上的按钮上的方法中写模态返回的一个代码就可以了,代码:

 

MVC概述:

  

  

屏幕检测:

1、设置设备支持旋转的方向,倒屏不作处理,默认是横屏还有正屏都支持。

方法:在视图控制器中重写supportedInterfaceOrientations方法,返回值是一个枚举值如:

2、设备在转化方向时和后执行的方法,在视图控制器中重写viewWillTransitionToSize:withTransitionCoordinator:,如让屏幕在旋转的时候回收键盘,代码:

3、视图的处理:如在方向会发生变化的视图中,重写layoutSubviews方法,根据设备的方向,重新布局,代码如:

内存警告:

当一个程序的运行内存到达一个值的时候,会调用didReceiveMemoryWarning方法,判断根视图是否已经加载,并且没有显示,如果是的话,把根视图设置为nil,目的是再次进入时能够重新加载调用viewDidLoad函数

时间: 2024-08-02 06:58:41

视图控制器、MVC、屏幕旋转、内存警告的相关文章

单个控制器的屏幕旋转问题

在APP中如何设置单个控制器的屏幕旋转问题 - (BOOL)shouldAutorotate { NSLog(@"让不让我旋转?"); return NO; } - (NSUInteger)supportedInterfaceOrientations { //需要强制竖屏 return UIInterfaceOrientationMaskPortrait//枚举还有好多用到什么直接用就可以啦; } }

学习模型-视图-控制器MVC模式

MVC简介: MVC开始是存在于桌面程序中的,M是指业务模型,V是指用户界面,C则是控制器,使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式.MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式: Model(模型)表示应用程序核心(比如数据库记录列表). View(视图)显示数据(数据库记录). Controller(控制器)处理输入(写入数据库记录). MVC 模式同时提供了对 HTML.

视图控制器 旋转

//用来控制当前视图控制器是否支持旋转- (BOOL)shouldAutorotate  // 自动旋转{    return YES;}//设置屏幕旋转的方向,系统默认支持三个方向的旋转,竖直,左右横屏.// UIInterfaceOrientationMaskPortrait 竖直方向 正方向//UIInterfaceOrientationMaskLandscapeLeft 左横屏//UIInterfaceOrientationMaskLandscapeRight 右横屏//UIInterf

UI_03 ?定义视图、视图控制器

?.?定义label-textField视图 自定义LTView类,封装UILabel与UITextField,实现快速创建以下类型的视图 **** 使用UIView子类实现 **** LTView.h #import <UIKit/UIKit.h> @interface LTView : UIView @property (nonatomic, retain)UILabel * label; @property (nonatomic, retain)UITextField * textFie

集合视图控制器(CollectionViewController) 、 标签控制器(TabBarController) 、 高级控件介绍

  1 创建集合视图,设置相关属性以满足要求 1.1 问题 集合视图控制器UIConllectionViewController是一个展示大量数据的控制器,系统默认管理着一个集合视图UICollectionView,功能几乎和UITableViewController差不多,能够以多行多列的形式展示数据. 集合视图UICollectionView继承至UIScrollView,也同tableView一样有两个协议,分别是UICollectionViewDataSource数据源协议和UIColl

iOS 视图控制器转场详解

前言的前言 唐巧前辈在微信公众号「iOSDevTips」以及其博客上推送了我的文章后,我的 Github 各项指标有了大幅度的增长,多谢唐巧前辈的推荐.有些人问我相关的问题,好吧,目前为止就几个,由于没有评论系统,实在不方便交流,但我也没把博客好好整理,一直都在简书上写博客,大家有问题请移步我的简书本文章的页面.关于交流,我想说这么几点: 1.问问题就好,不要加上大神大牛之类的称呼,与本文有关的问题我尽量回答:不负责解析转场动画,看心情回答. 2.去我的简书下留言是最有效的交流方式,要加我好友就

willRotateToInterfaceOrientation 屏幕旋转

/* 1.屏幕发生旋转后, 这个旋转事件会先传递给window的rootViewController(窗口的根控制器) 2.rootViewController又会将这个旋转事件传递给它的子控制器 */ /** * 屏幕即将旋转的时候调用 */ - (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration { NSL

iOS视图控制器编程指南 --- 呈现一个视图控制器

有两种方法实现一个视图控制器到屏幕上:把它嵌入到一个容器视图控制器或者是直接呈现它.容器视图控制器提供一个应用程序主要的导航功能,但是present 视图控制器也是一个重要的导航工具.你可以直接使用presentation 在当前视图控制器的最上层显示一个新的视图控制器.典型地,当你想要实现模态界面的时候直接present 视图控制器,但是你也可以基于其它目的使用它们. 对呈现视图控制器的支持内建于类UIViewController中,而且对所有的视图控制器对象都是有效的.你可以在其它任何视图控

UI第三讲.自定义视图 视图控制器指定自定义view 检测屏幕旋转 处理内存警告 容器视图控制器

一.自定义视图 (自定义label-textField视图) 目的:为了进一步优化登录界面,提高代码的精简程度和复用性,可移植性,从而需要在原有视图控件的基础之上自由组合成自定义视图. 一般自定义的视图会继承于UIView.以下是自定义视图的要点和步骤: 1.创建一个UIView子类 2.在类的初始化方法中添加子视图 3.类的.h文件提供一些接口(方法),便于外界操作子视图. 例子及相应代码: 例题:假设我们使用LTView类代表label-textfield视图.创建一个LTView类继承于U