步步入佳境---UI入门(3) --单视图控制器
视图控制器特点
//1,抽象 视觉上没有效果
//2,负责控制视图的显示方式
//3,负责通知视图的显示内容
//4,ios平台赋予的,收到内存警告和检测设备旋转
@interface CHViewController : UIViewController
//@property(nonatomic,retain)UIView *view;
//当使用访问器访问该视图控制器的根视图时,如果该视图控制器的根视图为空(没有使用设置器进行赋值过..),那么该视图控制器对象会自动收到消息-loadView..[view loadView],否则会直接返回该视图控制器的根视图...;
@end
//新建的视图控制器一定是继承于UIViewController的,或者是他的子类...
//因为这是一个视图控制器
-(id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
//一定要对super对象发送消息,目的是为了调用父类的实现方法
if (self= [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil])
{
//新建类的自定义初始化方法..
self.title=@"haha";
}
//返回初始化结果
return self;
}
-(void)dealloc
{
mutableArray=nil;
self.title=nil;
}
-(void)loadView
{
NSLog(@"%s",__FUNCTION__);
[super loadView];//父视图加载之后,view就不会是空了
NSLog(@"%@",self.view);//如果view为空就会执行loadView.如果view为空就会陷入死循环
//[super loadView];
}
//根视图完成加载
- (void)viewDidLoad
{
NSLog(@"%s",__FUNCTION__);
[super viewDidLoad];
mutableArray=[NSMutableArray new];
// Do any additional setup after loading the view, typically from a nib.
}
//控制器实例对象收到内存警告...
//当控制器实例对象收到内存警告时,控制器实例对象会自动对自身的根视图赋值为空,相当于执行了self.view=nil;
- (void)didReceiveMemoryWarning//自动将根视图赋值为空,为了释放内存//但是特殊情况是视图正在显示的时候就不会赋值为空
{
NSLog(@"%s",__FUNCTION__);
[super didReceiveMemoryWarning];
mutableArray =nil;
// Dispose of any resources that can be recreated.
}
//////////////////////////以上为第一层循环
//以下为第二层循环
-(void)viewWillAppear:(BOOL)animated
{
NSLog(@"----------%s",__FUNCTION__);
[super viewWillAppear:animated];
}
-(void)viewDidAppear:(BOOL)animated
{
NSLog(@"%s",__FUNCTION__);
[super viewDidAppear:animated];
}
-(void)viewWillDisappear:(BOOL)animated
{
NSLog(@"%s",__FUNCTION__);
[super viewWillDisappear:animated];
}
-(void)viewDidDisappear:(BOOL)animated
{
NSLog(@"%s",__FUNCTION__);
[super viewDidDisappear:animated];
}
@end
视图功能:显示视图控制器通知它显示的内容,ios赋予它响应用户交互,承载动画
每个view都有一个tag属性.
[self.view viewWithtag:int];tag默认都为0.
UIWindow是self.view的父view.
多态就是多种状态
步步入佳境---UI入门(3) --单视图控制器的更多相关文章
- 步步入佳境---UI入门(1)--项目建立与实现
一,本文讲解建立一个空项目,怎么一步一步的创建程序,总体的感觉一下程序流程 1,首先建立一个项目,如下:single view project,我们首先删除CHAppDelegate文件和Main. ...
- 步步入佳境---UI入门(2)
一,刚开始练习UI的时候,一般是在- (void)viewDidLoad方法中写代码测试,例如:- (void)viewDidLoad{ CGRect rect=CGRectMake(0, 0, ...
- 步步入佳境---UI入门(4) --简单练习
一,创建SingleViewApplication 1,UILabel的简单使用 UILabel *label=[[UILabel alloc]initWithFrame:CGRectMake(0, ...
- UI 07 _ 导航视图控制器 与 属性传值
首先, 先创建三个VC. 完毕点击按钮, 进入下一页, 并可以返回. 要先把导航视图控制器创建出来. 在AppDelegate.m 文件里代码例如以下: #import "AppDelega ...
- Snail—UI学习之导航视图控制器UINavigationController(系统)
背景 有一个根视图控制器 然后跳转到第一个界面 第一个界面能够返回到根视图 也能够跳转到第二个视图 第二个视图能够直接返回到根视图 新建三个ViewController RootViewCon ...
- ##DAY3 自定义视图、视图控制器、视图控制器指定视图、loadView、 viewDidLoad、MVC、屏幕旋转、内存警告
##DAY3 自定义视图.视图控制器.视图控制器指定视图.loadView. viewDidLoad.MVC.屏幕旋转.内存警告 #pragma mark ———————自定义视图的步骤 —————— ...
- UI入门指引
1. iOS学习路线: C语言:数据类型.流程控制.函数.指针.字符串.结构体.枚举.预处理: OC:面向对象.内存管理.分类.协议.Block.KVC/KVO.Foundation框架: iOS基础 ...
- jQuery UI 入门之实用实例分享
jQuery UI 入门 jQuery UI 简介 jQuery UI 是一个建立在 jQuery JavaScript 库上的小部件和交互库,您可以使用它创建高度交互的 Web 应用程序.无论您是创 ...
- jQuery UI 入门之实用实例
jQuery UI 入门 jQuery UI 简介 jQuery UI 是一个建立在 jQuery JavaScript 库上的小部件和交互库,您可以使用它创建高度交互的 Web 应用程序.无论您是创 ...
随机推荐
- Unique Binary Search Trees [LeetCode]
Given n, how many structurally unique BST's (binary search trees) that store values 1...n? For examp ...
- iOS机器学习-TensorFlow
人工智能.机器学习都已走进了我们的日常,尤其是愈演愈热的大数据更是跟我们的生活息息相关,做 人工智能.数据挖掘的人在其他人眼中感觉是很高大上的,总有一种遥不可及的感觉,在我司也经常会听到数据科学部的同 ...
- 初学ExtJs 表格显示后台数据
最近开始接触ExtJs,贴出自己的代码,一个简单的表格显示 版本 3.4.1 需要json包 代码清单1.jsp引入的ExtJs文件 <!-- 资源文件 ExtJs --> <lin ...
- 选择最适合你的Linux学习方法
我们知道Linux只是一个内核,现在的Linux操作系统底层都是用这个内核,包括Android手机,所以Linux操作系统其实是将Linux内核与应用软件做一个打包,我们称之为Linux发行版.现在比 ...
- libpcap文件格式分析
第一部分:PCAP包文件格式 一 基本格式: 文件头 数据包头数据报数据包头数据报...... 二.文件头: 文件头结构体 sturct pcap_file_header { DWOR ...
- warning malformed '#pragma pack(push[, id], n)' - ignored
bmp.c:8: warning: malformed '#pragma pack(push[, id], <n>)' - ignored bmp.c:33: warning: #prag ...
- GET /hello/fred/0926xxx572
GET /hello/fred/0926xxx572 app.get('/hello/:name/:tel', function(req, res) { console.log(req.params. ...
- ubuntu安装vim
1.安装 sudo apt-get install vim-gtk 2.安装完成之后,在命令行敲入vi,按“tab”键,可以看到,已经有vim命令的存在,安装成功. 3.配置 sudo vim /et ...
- HDU 2594 扩展kmp模板题
题目大意: 给定两个字符串,在第一个字符串中找到一个最大前缀作为第二个字符串的后缀 #include <iostream> #include <cstdio> #include ...
- [mr440] 崎岖的山区
极类似动归的广搜?反正各种算法傻傻分不清…写之前叹了一句,好久不写广搜了啊!呵呵真的写了好久,大约一个钟头? f[i,j,0]表示到点(i,j)且最后一步为下降的最少步数,f[i,j,1]就是上升.莫 ...