步步入佳境---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 应用程序.无论您是创 ...
随机推荐
- 你不知道的JavaScript--面向对象高级程序设计
转载http://blog.csdn.net/i10630226/article/details/51088841 1. JS是基于原型的程序 建立一个简单的面向对象的类.有属性,有方法. funct ...
- 再不用担心DataRow类型转换和空值了(使用扩展方法解决高频问题)
在使用DataRow读取数据时,通常会遇到数据可能为Null, 但是又需要转换为如int等其它类型的数据,因此就通常会写这样的代码: if (dr[name] != DBNull.Value & ...
- 注解配置springMvc及向作用域中赋值
1.在applicationContext.xml中配置包扫描器 <!-- 使用注解配置扫描器 --> <context:component-scan base-package=&q ...
- Oracle - PL/SQL Commands
第一章:日志管理 1.forcing log switches sql> alter system switch logfile; 2.forcing checkpoints sql> a ...
- 建库和表的脚本.sql
1.一直都记不太清楚,需要新建一个数据库和表的脚本是怎样的,恰巧今天翻到了,特地记录下来,希望以后用的时候记住吧! create database testdb00; use testdb00; cr ...
- Octopus系列之更新历史记录
更新笔记历史 2015.2.3 更新了产品价格的计算方法 --采用了通用化的一个处理[支持各个国家货币]更新产品价格,增加两组价格:一组用来进行前台的展示:一组用来进行后台的计算更新了产品分类 ...
- php 采集类snoopy http://www.jb51.net/article/27568.htm | cURL、file_get_contents、snoopy.class.php 优缺点
Snoopy是一个php类,用来模拟浏览器的功能,可以获取网页内容,发送表单. Snoopy的特点: 1.抓取网页的内容 fetch 2.抓取网页的文本内容 (去除HTML标签) fetchtext ...
- hduacm 2888 ----二维rmq
http://acm.hdu.edu.cn/showproblem.php?pid=2888 模板题 直接用二维rmq 读入数据时比较坑爹 cin 会超时 #include <cstdio& ...
- Jmeter java.lang.OutOfMemoryError: GC overhead limit exceeded
使用这个jmeter工具测试时,遇到这么个gc错误,网上找到了解决方案.原因是jmeter默认分配内存的参数很小,好像是256M吧.故而解决方法,就是增加内存: set HEAP=-Xms4g -Xm ...
- appjs desktop2
var express = require('express');var path = require('path');var favicon = require('serve-favicon');v ...