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 方法。

你可能感兴趣的:(View,ViewController 初始化执行方法)