storyboard和xib使用总结

视图控制器的可视化管理工具storyboard和xib


1. storyboard

storyboard的作用是可以把所有的viewController以及其管理的view都展示出来,并且用线和箭头表明他们之间的跳转关系。

需要在代码中使用storyboard中的某个controller时,需要先获取storyboard,然后再通过storyboard获取其中某个controller的一个实例。具体要获取哪个controller是通过controller的唯一标识来确定的(在Interface Builder中叫做storyboard ID),所以要记得为controller设定一个storyboard ID。
获取storyboard的方法:+storyboardWithName:bundle:
获取storyboard中某个controller的实例:-instantiateViewControllerWithIdentifier:
storyboard里通常会指定一个controller作为入口(initial View Controller),也就是程序打开时呈现的第一个controller,要获取这个controller的实例可以直接使用以下方法:
-instantiateInitialViewController

storyboard中除了可以管理许多的ViewController及其views,其实在storyboard中也可以管理多个子storyboard。这就需要用一个东西来表示各个子storyboard。这东西叫做storyboard reference,在library中看起来是这个样子的
这里写图片描述
把它拖到storyboard中,然后绑定一下它所代表的.storyboard文件,就可以用它来表示某一个storyboard了。

2. segue

segue就是storyboard中标识跳转关系的箭头和线,也就是跳转动作,它已经被封装成一个类UIStoryboardSegue。可以在storyboard中给每个跳转动作加一个标识(identifier)。然后就可以随时在代码中,通过performSegueWithIdentifier:sender:方法,随时执行跳转动作。
当然,要在跳转的时候传值也是有办法的,在跳转之前会执行
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 方法
在这个方法中可以通过segue.destinationController获取跳转的目标控制器,剩下就是传值的问题了。
这里只需要注意,在使用协议传值的时候,通过segue.destinationController获取的目标控制器的类型默认是UIViewController,此时访问它的delegate是访问不到的,要先将它转换为目标控制器的类型才可以访问到。比如说,目标控制器的类型是SecondViewController。那么要访问它的代理:
SecondViewController secondViewController=(SecondViewController )segue.destinationController;
secondViewController.delegate=self;

3. xib

xib就相当于把storyboard里面的单个controller独立出来在一个文件中管理。要获取xib中的controller的实例,通过方法:
-initWithNibName:Bundle:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值