UIViewController 的创建
1,代码创建
2,通过nib文件创建
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.window.backgroundColor = [UIColor whiteColor];
// 代码创建
RootViewController *ViewController = [[RootViewController alloc] init];
ViewController.view.backgroundColor = [UIColor redColor];
self.window.rootViewController = ViewController;
// nib 创建1
RootViewController *mainViewController = [[RootViewController alloc] initWithNibName:@"View" bundle:nil];
self.window.rootViewController = mainViewController;
// nib 创建2
RootViewController *rootViewControl = [[RootViewController alloc] init];
self.window.rootViewController = rootViewControl;
[self.window makeKeyAndVisible];
return YES;
通过nib文件创建,若nib文件名字和加载的类的文件名相同,则编译器自动寻找nib文件,并加载。如上代码 nib 创建2 所示:无需调用“initWithNibName”方法 也能加载。
UIViewController 生命周期
加载过程:
1,首先访问viewcontroller的view属性
2,如果存在view,则直接加载,若不存在则UIViewController调用loadView方法
2.1 如果覆盖了该方法,则必须创建view给UIViewController属性,
2.2 如果没有覆盖该,UIViewController会调用父类的引用
3 通过viewDidLoad方法来执行一些事物
访问的方法步骤: init(有父类先访问 [super init])---- initwithNIbName(有父类)---loadview(有父类)---viewdidload(有父类)----viewwillappear---viewdidapppear
视图控制器的响应链:
事件---根视图---视图控制器---窗口---UIApplication--- 处理(忽略)