对程序加载顺序和MainWindow,ViewController,AppDelegate三者关系一直比较糊涂,今天通过例子悟到一点,
以下都是我的愚见,请高手猛拍
一:先说程序加载顺序:
1.main()函数直接启动了AppDelegate委托(目的是继承大量实用的方法)
2.之后AppDelegate委托一般都会使用
- (BOOL)application: didFinishLaunchingWithOptions:方法
调用[self.windowaddSubview:XXXXViewController.view]; 添加子视图
3.XXXXViewController一般有- (void)viewDidLoad等方法
继续延迟加载,直到启动过程完成,等待用户操作
4.如有操作,UI控件通过IBAction告知XXXXViewController处理
5.循环处理
二:再说说三者的内容
AppDelegate:
是项目中有且只有一个的,高层控制(直接从项目层面控制)并不直接处于MVC中
MainWindow.xib:
UIWindow继承于UIview,相当于一个画框,是程序默认的默认视图,里边还定义了各个方法的连接
等待往里添加UIview,View就相当于画布(画布能更换)。由画框和画布组成MVC里的V
ViewController:
项目中的核心,MVC的C,中控部分。
视图的操作集中到此,再由里边的方法决定如何处理,处理完指挥视图变化。
为了使用大量管理方法(如通知等)需要符合UIApplicationDelegate协议,也就是受委托于XXXAppDelegate