美文网首页
View,ViewController 初始化执行方法

View,ViewController 初始化执行方法

作者: 南京小伙 | 来源:发表于2017-09-08 13:08 被阅读0次

    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 初始化执行方法

          本文链接:https://www.haomeiwen.com/subject/sddgjxtx.html