View,ViewController 初始化执行方法
View
在项目中我们一般是使用自定义 View,自定义 View 又有两种方案来实现。
第一种是使用 Xib 来布局实现。
创建出一个单独的 Xib 文件连接相应的 View
BView*bView = [[[NSBundlemainBundle]loadNibNamed:@"BView"owner:niloptions:nil]lastObject];
从 Xib 初始化 View 执行 - (instancetype)initWithCoder:(NSCoder*)aDecoder,- (void)awakeFromNib 方法。
第二种是不使用 Xib,直接通过代码布局实现。
//self.testView= [[TestViewalloc]initWithFrame:CGRectMake(100,100,100,100)];
self.testView= [[TestViewalloc]init];
self.testView.frame=CGRectMake(100,100,100,100);
self.testView.backgroundColor= [UIColororangeColor];
[self.viewaddSubview:self.testView];
会执行 - (instancetype)init ,- (instancetype)initWithFrame:(CGRect)frame 这两个方法。
还有一种直接在 stroryboard 或 xib 上拖一个 View 并将它与存在的类关联。此时它与从 Xib 初始一样,执行 - (instancetype)initWithCoder:(NSCoder*)aDecoder,- (void)awakeFromNib 方法。
ViewController
创建 VC 有三种方式
第一种是创建与 Xib 关联的 VC
//AViewController *aVC = [[AViewController alloc] initWithNibName:nil bundle:nil];
AViewController*aVC = [[AViewControlleralloc]init];
会执行 - (instancetype)initWithNibName:(NSString*)nibNameOrNil bundle:(NSBundle*)nibBundleOrNil,- (instancetype)init 两个方法
第二种通过 storyboard 来初始化
UIStoryboard*storyboard = [UIStoryboardstoryboardWithName:@"Main"bundle:[NSBundlemainBundle]];
BViewController*bVC = [storyboardinstantiateViewControllerWithIdentifier:@"BViewController"];
会执行 - (instancetype)initWithCoder:(NSCoder*)aDecoder,- (void)awakeFromNib 两个方法
第三种直接创建,会- (instancetype)init 方法。