loadView 再思考

如果使用代码创建view,那么就需要重写loadView方法:

在这个方法中,如果不创建view,就会循环的调用loadView.

- (void)loadView

{

UIView *view = [[UIViewalloc]initWithFrame:[[UIScreenmainScreen]applicationFrame]];

self.view = view;

UIButton *button = [UIButtonbuttonWithType:UIButtonTypeRoundedRect];

button.frame =CGRectMake(100,106,132,132);

[button addTarget:selfaction:@selector(buttonPressed:)forControlEvents:UIControlEventTouchUpInside];

//    button.userInteractionEnabled = YES;

[button setTitle:@"A"forState:UIControlStateNormal];

[self.viewaddSubview:button];

在这个方法中必须创建视图控制的view,也就是self.view。

或者调用[super loadView]方法也是可以的。

如果是下面这样:

- (void)loadView

{

UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];

button.frame = CGRectMake(100,106,132,132);

[button addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside];

//    button.userInteractionEnabled = YES;

[button setTitle:@"A" forState:UIControlStateNormal];

[self.view addSubview:button];

就会死掉,一直循环的调用loadView,因为视图控制器的view没有创建。

视图装载的过程

很清晰的从这张图片看出来,走到is there a view的时候,因为一直没有创建view,那么就会循环的调用loadView。

视图的卸载过程

时间: 2024-10-23 04:52:30

loadView 再思考的相关文章

关于网页脚本代码结构的再思考

在很多说法中,总是建议将我们的javascript脚本加载在网页的最后,并用外部文件的形式,然而事实并不是这样,外挂的文件最好不要太多,脚本结构代码本身才是值得我们思考的问题.我们需要重新思考我们撰写的脚本的执行力,并把更优秀的javascript开发思路融入到我们的开发中. 我在读完了几篇关于javascript和jQuery的性能优化的文章之后,才恍然大悟,我以前所做的很多代码结构优化,最终只是让乌徒帮显得臃肿,于是重新设计脚本代码的结构,无论怎么样,乌徒帮现在的网页打开显得更加流畅了. 1

机房收费重构——关于上下机的再思考

有句话叫做no zuo no die,我大概就是这种人吧.why?做机房收费系统的时候,按照一般方法也能实现,但这次做上下机的时候,总感觉这么做对自己来说,没什么提高,然后就停下来,重新想想上下机还能怎么做? 后来,大致采用的思路是这样的:将上下机的读写数据的过程写成两个存储过程,负责读取和更改数据.中间的计算过程写在代码里面:中间判断时间的过程用职责链模式来实现,判断一般用户还是临时用户用策略模式实现.这样,整个上下机的过程就是这样的: 1,用上机的存储过程使学生上机,然后将学生上机信息写入表

HDU 5135(再思考)

题意略. 思路:再思考后发现,为了构造出最大的三角形面积和,我们应该尽量让长的棍子相组合,这样构造出的三角形面积和最大,贪心能解. #include<bits/stdc++.h> using namespace std; double store[15]; int n; double cal(double a,double b,double c){ double p = (a + b + c) / 2; return sqrt(p * (p - a) * (p - b) * (p - c));

GPU计算的十大质疑—GPU计算再思考

http://blog.csdn.NET/babyfacer/article/details/6902985 原文链接:http://www.hpcwire.com/hpcwire/2011-06-09/top_10_objections_to_gpu_computing_reconsidered.html作者:Dr. Vincent Natoli, Stone Ridge Technology (http://www.stoneridgetechnology.com/ )译者:陈晓炜(转载请注

Paxos算法再思考

1. 背景 在学习分布式相关知识时,很早之前就断断续续了解过Paxos算法,搜到的资料大抵如Paxos Made Simple中译版,互相转载.翻译.互相注释.在粗览版面后,发现了一些奇怪的东西,诸如“提案”.“选举”.“议员”.“决议”.心里不禁骂娘,这都是些神马玩意啊,和分布式容错有五毛钱关系?作为一个长期生活在社会主义国家的单纯码农,瞬间被这些词汇带歪了.硬着头皮往后读,发现遇到疑惑的地方又冷不丁一个“显而易见”,真真有苦无处诉. 这还算好,如果你看到其他作者拿出三国时期的五虎上将来举例,

Web系统开发构架再思考-前后端的完全分离

前言 前后端完全分离其实一直是Web开发人员的梦想,也一直是我的梦想,遥想当年,无论是直接在代码里面输出HTML,还是在HTML里面嵌入各种代码,都不能让人感到满意.期间的痛苦和纠结,我想所有Web开发人员都深有感触. 由于最近几年一直在MS平台,从Web Form到MVC,MS平台虽然易用好学,但整合度太高而灵活性不足,一直没有找到很好的前后端分离的思路. (Java平台的兄弟如果已经有非常成熟的平台和思路,最好能简单留个言给个帖子地址或者技术名称,不胜感激). ASP.NET的MVC模式的确

数据结构之线性表再思考

数据结构学起来妙不可言,贼有意思. 很久没写博客了,今天来一篇长的.前面写的关于线性表的代码和思路,经过我多次反复思考,又有了新的收获,与大家一起分享. 1.线性表的定义 首先要明白什么是线性表,一种常用且最简单的数据结构. 数据结构通俗来说就是:装水的杯子,有的是圆的.有的是方的. 官方定义:线性表是n个数据元素的有限序列. 把这个样的一个数据模型映射到计算机,等同找一块存储空间给它,而线性表一般是申请动态内存,因此就是在堆上给它分配一块内存. 看下图 通过图我们可以了解到,线性表数据结构如何

PLC编程再思考之二:SOA

随着AMAZON云服务的成功,许多人知道了BEZOS在AMAZON内部推广WEB SERVICE的故事,从而佩服他的技术眼光和执行力. 如果说AMAZON.COM的成功是因为长尾理论,是对万货商店的技术实现,那么从某个层面来说,AWS(AMAZON WEB SERVICE)是另一种形式的长尾,只不过它销售的是IT服务而不是物理产品. BEZOS基于SOA的思想,通过网络接口和服务打通了AMAZON内部的各种子系统,他把基础设施的接口进一步对外开放,从而形成了AWS的基础功能. 那么,SOA的思想

PLC编程再思考之三:面向过程

现在的高级语言基本上都是面向对象的,但是PLC编程象较早的BASIC/FORTRAN语言一样,是面向过程的. PLC逻辑处理的基本过程为: 1) 将外部设备输入的数据写入输入映像区(I). 2) 逻辑处理,包括读I区.写Q区. 3) 将输出映像区(Q)的数据输出到外部设备. 其中,1)和3)是PLC内部处理的,所有的PLC用户程序只处理第2)部分. PLC的这种处理方式带来了下面2个特点. 特点1:OB1调用的程序不存在并发 我们知道,PLC用户程序主要运行在2个地方:中断和OB1. 一般而言,