ViewController 的view的3种创建方式

本文深入探讨了ViewController视图的三种创建方式:Storyboard、XIB文件和代码创建,包括具体实现步骤及注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

ViewController 的view的3种创建方式 (不管哪一种 都会调用loadView方法):

1.StoryBoard

2.xib

3.代码创建


1.StoryBoard方式

1.   首先初始化StoryBoard.  UIStoryboard*storyBoard = [UIStoryboard storyboardWithName:@"OneView" bundle:nil];

2.   通过StoryBoard生成一个ControllerView .

  OneViewController * controller= [storyBoard instantiateInitialViewController];

     若以这种方式初始化ControllerView则必须在 OneView.storyboard 勾上 is Initial View Controller.

OneViewController * controller= [storyBoard instantiateViewControllerWithIdentifier:@"XXX"];

                          若以这种方式初始化ControllerView则必须将 OneView.storyboard 的Storyboard ID 设为 XXX

 

2.xib方式. (注意此时xib 的File's Owner的class 一定要指定为要绑定的 ViewController. 而且一定要在File's Owner上点击右键将view连接到自己创建的view控件上.(不做会报错)

          1.创建的时候指定某个xib      initWithNibName:  

          2.创建的时候没有指定xib,即 [[X alloc]init].默认会查找与控制器名(OneViewController)Controller之前的文字相同的xib (即 OneView.xib).

          3. 若没有找到OneView.xib 则会查找与控制器名Controller(OneViewController)同名的xib(即 OneViewController.xib)

          4.若仍然没有找到,则会调用loadView 自己创建一个空白(透明 什么都没有)的view(loadView没有被重写的时候). 一般可在loadView里面自定义view(这样就不会空白了..)

    

3.代码方式.

           在ControllerView重写loadView方法. 比如self.view = [[UIView alloc] init];……… 这个时候可以不调用[super loadView];

    

最后几个tips:

     1.控制器的view是延迟加载的:用到时再加载

     2.可以用isViewLoaded方法判断一个UIViewController的view是否已经被加载

     3.控制器的view加载完毕就会调用viewDidLoad方法

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值