UIViewController和UIView不同加载方式及生命周期函数 ###UIViewController加载方式
1.通过xib加载2.通过storyboard加载3.通过NSCoding协议加载4.通过代码加载
####xib加载
XXXViewController *xibVC = [[XXXViewController alloc]initWithNibName:@"XXXViewController" bundle:[NSBundle mainBundle]];
####通过storyboard加载
UIStoryboard *uisb = [UIStoryboard storyboardWithName:@"StoryBoard" bundle:[NSBundle mainBundle]];ViewController *vc = [uisb instantiateViewControllerWithIdentifier:@"ViewController"];
####通过NSCoding协议加载
MMViewController *coderVC = [[MMViewController alloc] initWithCoder:nil];
####通过代码加载
CodeViewController *codeVC = [[CodeViewController alloc] init];
###UIView加载方式
1.xib加载方式2.代码加载方式
####xib加载方式
XibView *xibView = [[[NSBundle mainBundle] loadNibNamed:@"XibView" owner:self options:nil] lastObject];
####代码加载
CodeView * v = [[CodeView alloc] init];
###viewcontroller和view的生命周期函数比较
####UIViewController不同加载方式钩子函数总结:
XIB加载方式 initWithNibName loadView //(注意:如果实现一个空的方法,则XIB设置的属性无效,会覆盖XIB中的设置) viewDidLoad Storyboard加载方式 initWithCoderawakeFromNib loadView //(实现是一个空方法或者不实现没有影响) viewDidLoadNSCoding加载方式 initWithCoder loadView viewDidLoad代码加载方式 initWithNibName init //(这个是我初始化的时候主动调用,如果用initWithNibName传入nil参数则不会调用) loadView viewDidLoad
####UIView不同加载方式钩子函数总结:
XIB加载方式 initWithCoder awakeFromNib willMoveToWindow代码加载方式 initWithFrame(设置frame。) init(init方法调用) willMoveToWindow