(1) iphone开发,自定义Window-based Application 模板及委托运行机制
2012-04-02 17:46
302 查看
Xcode 4.2之前是有这个模板的,但Xcode 4.2之后的更新版本中就没有了此模板,综合来说模板的作用就是为我们编程的时候节省代码量的。
好了让我们开始自定义Window-based Application 模板吧!
一.首先选中一个空的模板:
选择空模板后的结果:
2.由此可见,这里并既没有试图控制器(UIViewControl的子类)也没有主窗口(UIWindow),需要我们手动去创建:
(1)UIViewControl的子类:
2)UIWindow :可以理解为一个容器,里面可以装很多UIView,通俗的来讲就是UIWindow就是一个画板,而UIView就是上面一幅幅美丽的图画。
3)向UIWindow中添加视图控制器和委托类的控件:
4)到这里,前期工作就准备好了,哦.....还有一个非常重要的一点:刚才我们所托上去的
控件,它们的最初状态可都是来自NSObject类型啊,可别忘了修改它们的类,以确保得到其相应的功能。
File's Owner 可以看做是:程序代码与前台UI界面沟通(相互通信)的桥梁。
5)下一步就要进行让人头疼的连线了,不过不用担心,只要理解了运行流程与委托机制就会明白。
可先把连线理解为赋值。
6)由上图可看出 File's Owner 把自身的属性委托对象传给了Iphone0402 Test............. 到了
这里是最容易让人犯晕的时候,请听我一一道来:
首先讲一下委托机制:
每个iphone应用程序有且仅有一个UIApplication实例,UIApplication在后台处理事物,管理这整个程序的生命周期,在程序执行需要时UIApplication会调用被实例化好的委托。
(Cocoa Touch 大部分都使用了委托,为UIApplication处理一些事情)
例:有一个Boss类和Employee类。Employee类中有一个干活的方法‘doit’ ,Boss将得到Employee类,去调用这个方法。由此可以把委托机制简单理解为:自己的工作让别人去干。回到此例中Boss中并没有doit这个
干活的方法,而是得到了Meployee 类(通知其干活)调用doit()。
7)把视图控制器添加到File's Owner的rootVeiwControl(根视图控制器)上,也可以理解为将值赋给了rootVeiwControl,为显示图形做最后准备。
8)最后一步,虽然不是什么技术,但是,是最容易让人遗忘的的一步,没有它,界面将无法显示。
以下两种方法都可行:
这样模板就建好了,等一等,我们别忙着庆祝,模板都建好了,也得看一下效果啊,那好我们就用此模板写一个经典的输出吧。。。。。Hello World!
二.让我们回到子视图:添加一些小组件。
1)2)向视图控制器.m文件中添加内容:
3)最后还剩下重要的一点,也是容易被忽视的:注释掉系统自动生成对操作不利的方法:
(4)运行结果:
最后总结:
一路走过来,可能会让人产生疑问,就是这个模板的具体作用没体现出来,原因是,像此类简单的操作,别的模板也能完成,自己写模板是在浪费时间吗?
肯定不是,因为此模板多用于多个UIVeiw,或很复杂的图形创建,以后会用到,自己创建模板还可以加深对iphone生命周期的理解,及其工作机制。
相关文章推荐
- iphone开发,ui界面和后台线程的运行机制
- 【UNITY3D 游戏开发之八】Unity编译到iPhone运行 Collider 无法正常触发事件解决方案 推荐
- iphone开发笔记(-) 退回输入键盘:自定义颜色:隐藏状态栏:
- Xcode4.2下iPhone多视图开发(自已创建MainWindow.xib和不用MainWindow.xib两种实现)
- Chrome扩展开发之二——Chrome扩展中脚本的运行机制和通信方式
- 深入理解iPhone委托模式兼谈iPhone生命周期(手把手教你iphone开发 - 基础篇)
- iPhone开发学习笔记007——Xcode4.2下iPhone多视图开发(自已创建MainWindow.xib和不用MainWindow.xib两种实现)
- [IOS 开发] runtime 运行时机制 完全解读
- (4) iphone 开发 自定义UITableViewCell的子类 ,轻松添加图片文本信息等
- ECMALL模板解析机制.MVC架构分析及文件目录说明.二次开发指南手册
- iphone开发中用NSUserDefaults 判断程序是否第一次运行
- 天纵智能软件快速开发平台自定义模板列表插件
- 对session对象在web开发中的创建以及sessionId生成并返回客户端的运行机制.
- 事件/委托机制(event/delegate)(Unity3D开发之十七)
- 移动开发:dequeueReusableCellWithIdentifier的运行机制
- window中安装iphone开发环境
- Qt键盘驱动处理类的实现:Qt键盘驱动处理类的实现,通过Qt的插件机制实现嵌入式开发中的自定义键盘处理。
- iPhone开发之自定义UIActionSheet
- 【自定义标签开发】02-自定义标签运行原理
- iphone开发之自定义下拉列表UIcombobox控件