iOS-控制器以及View的创建

一.控制器的创建

1.直接创建(纯代码)

    UIViewController *vc = [[UIViewController alloc] init];
    vc.view.backgroundColor = [UIColor redColor];

  2.通过storyboard加载,详细的分为两步

  1>.加载指定的storyboard

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Test" bundle:nil];

  注意:这一步并不会创建storyboard中得控制器以及控件

  2>.创建storyboard中箭头指向的控制器

UIViewController *vc = [storyboard instantiateInitialViewController];   //此时真正的创建控制器

3.通过xib文件创建控制器

NJViewController *vc = [[NJViewController alloc] initWithNibName:@"One" bundle:nil];
self.window.rootViewController = vc;

注:从文件名为One.xib中创建控制器

 

二.控制器View的创建

  1.第一种方式:没有xib和storyboard

UIViewController *vc = [[UIViewController alloc] init];

  注:这种没有Xib和Storyboard的方式,会自动创建一个空白的view做为控制器的veiw

  2.通过 storyboard 创建

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Test" bundle:nil];
UIViewController *vc = [storyboard instantiateInitialViewController];

注:如果重写了控制器的loadview方法, 就不会创建storyboard中描述的view作为控制器的view, 而是创建一个空白的veiw做为控制器的veiw


3.通过Xib创建(这种方式存在3中途径,并且具有优先级)

  1>.有指定xib情况下创建

NJViewController *vc = [[NJViewController alloc] initWithNibName:@"One" bundle:nil];

    注:这种方式会创建指定名称的xib中描述的veiw做为控制器的veiw

    2>.有同名去掉Controller的 xib情况   

    UIViewController *vc = [[UIViewController alloc] init];

    注:如果程序中有以控制器名称去掉Controller后而命名的Xib,系统会自动需找,从这个xib描述的View创建

    3>.有同名xib情况(代码和上面一样)

    UIViewController *vc = [[UIViewController alloc] init];

    注:如果文件中有以控制器名称相同而命名的Xib,系统会自动需找,从这个xib描述的View创建。强调:如果程序中有以控制器名称相同的Xib文件

      以及以控制器名称去掉Controller后而命名的Xib同时存在,这时优先从以控制器名称去掉Controller后而命名的Xib描述的View创建

 

三.控制器View的创建的优先级(下面依次从优先级最高分别列出)

  1.重写了控制器的loadview方法

   2.明确指定了xib和storyboard

   3.没有指定了xib和storyboard,以控制器名称去掉Controller后而命名的Xib描述的View中创建

   4.没有指定了xib和storyboard,以控制器名称同名的Xib描述的View中创建

   5.创建一个空白的View

   图解:

         

  

    

  

  

转载于:https://www.cnblogs.com/wxdi/p/3781144.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值