Xcode 4.2之前是有这个模板的,但Xcode 4.2之后的更新版本中就没有了此模板,综合来说模板的作用就是为我们编程的时候节省代码量的。

好了让我们开始自定义Window-based Application 模板吧!

一.首先选中一个空的模板:

(1) iphone开发,自定义Window-based Application 模板及委托运行机制

选择空模板后的结果:

(1) iphone开发,自定义Window-based Application 模板及委托运行机制

2.由此可见,这里并既没有试图控制器(UIViewControl的子类)也没有主窗口(UIWindow),需要我们手动去创建:

(1)UIViewControl的子类:

(1) iphone开发,自定义Window-based Application 模板及委托运行机制

2)UIWindow可以理解为一个容器,里面可以装很多UIView,通俗的来讲就是UIWindow就是一个画板,而UIView就是上面一幅幅美丽的图画。

(1) iphone开发,自定义Window-based Application 模板及委托运行机制

3)向UIWindow中添加视图控制器和委托类的控件:

(1) iphone开发,自定义Window-based Application 模板及委托运行机制


4)到这里,前期工作就准备好了,哦.....还有一个非常重要的一点:刚才我们所托上去的

控件,它们的最初状态可都是来自NSObject类型啊,可别忘了修改它们的类,以确保得到其相应的功能。

(1) iphone开发,自定义Window-based Application 模板及委托运行机制

File's Owner 可以看做是:程序代码与前台UI界面沟通(相互通信)的桥梁。

(1) iphone开发,自定义Window-based Application 模板及委托运行机制(1) iphone开发,自定义Window-based Application 模板及委托运行机制

5)下一步就要进行让人头疼的连线了,不过不用担心,只要理解了运行流程与委托机制就会明白。

可先把连线理解为赋值。

(1) iphone开发,自定义Window-based Application 模板及委托运行机制

6)由上图可看出 File's Owner 把自身的属性委托对象传给了Iphone0402 Test............. 到了

这里是最容易让人犯晕的时候,请听我一一道来:

首先讲一下委托机制:

每个iphone应用程序有且仅有一个UIApplication实例,UIApplication在后台处理事物,管理这整个程序的生命周期,在程序执行需要时UIApplication会调用被实例化好的委托。

(Cocoa Touch 大部分都使用了委托,为UIApplication处理一些事情)

例:有一个Boss类和Employee类。Employee类中有一个干活的方法‘doit’ ,Boss将得到Employee类,去调用这个方法。

(1) iphone开发,自定义Window-based Application 模板及委托运行机制

由此可以把委托机制简单理解为:自己的工作让别人去干。回到此例中Boss中并没有doit这个

干活的方法,而是得到了Meployee 类(通知其干活)调用doit()。



7)把视图控制器添加到File's Owner的rootVeiwControl(根视图控制器)上,也可以理解为将值赋给了rootVeiwControl,为显示图形做最后准备。

(1) iphone开发,自定义Window-based Application 模板及委托运行机制

8)最后一步,虽然不是什么技术,但是,是最容易让人遗忘的的一步,没有它,界面将无法显示。

以下两种方法都可行:

(1) iphone开发,自定义Window-based Application 模板及委托运行机制

(1) iphone开发,自定义Window-based Application 模板及委托运行机制


这样模板就建好了,等一等,我们别忙着庆祝,模板都建好了,也得看一下效果啊,那好我们就用此模板写一个经典的输出吧。。。。。Hello World!


二.让我们回到子视图:添加一些小组件。

1)

(1) iphone开发,自定义Window-based Application 模板及委托运行机制

(1) iphone开发,自定义Window-based Application 模板及委托运行机制

2)向视图控制器.m文件中添加内容:

(1) iphone开发,自定义Window-based Application 模板及委托运行机制

3)最后还剩下重要的一点,也是容易被忽视的:注释掉系统自动生成对操作不利的方法:


(1) iphone开发,自定义Window-based Application 模板及委托运行机制

(4)运行结果:

(1) iphone开发,自定义Window-based Application 模板及委托运行机制

最后总结:

一路走过来,可能会让人产生疑问,就是这个模板的具体作用没体现出来,原因是,像此类简单的操作,别的模板也能完成,自己写模板是在浪费时间吗?

肯定不是,因为此模板多用于多个UIVeiw,或很复杂的图形创建,以后会用到,自己创建模板还可以加深对iphone生命周期的理解,及其工作机制。


相关文章:

  • 2021-07-05
  • 2021-12-27
  • 2022-03-11
  • 2022-12-23
  • 2021-08-18
  • 2021-09-21
  • 2021-08-22
  • 2022-01-18
猜你喜欢
  • 2021-08-25
  • 2022-12-23
  • 2021-04-26
  • 2022-12-23
  • 2021-09-22
  • 2021-11-21
  • 2021-10-30
相关资源
相似解决方案