iOS9 STORYBOARD REFERENCE

storyboard reference的意义

在storyboard出现之前,在工程里用interface builder是一件不够高效的事:你要为每个页面创建一个xib文件,页面间的关系并不能在xib上直观反映出来,一旦页面多了管理起来相当麻烦。
Storyboard的出现使得大多数工程只用一个storyboard便可以直观地表现出各个页面的层次关系,但是当页面太多时,即使将页面分布在多个storyboard中,由于这些storyboard直接并没有直接的联系,开发者需要用一堆代码来将它们联系起来。
为了解决这个问题,苹果在iOS9推出了storyboard reference的概念,它允许开发者在把页面放置在不同的storyboard中的情况下,保持各个storyboard的关联,这也使得页面间的逻辑关系更清晰和易于管理。

如何使用storyboard reference

1.为页面建立storyboard reference

从这里下载Demo,打开工程,可以看到storyboard如下图:

这里写图片描述

一共三个tab,分别为main主页、collections收藏、settings设置。其中设置页还有三个子页面:账户、意见反馈和关于。这只是一个Demo,当然你的工程很可能比这个结构复杂得多。当storyboard里从主页面展开的分支越来越多时,我们可以将这些分支按照逻辑关系(例如按tab)分别迁移到不同的storyboard中。

同时选中设置页和它的子页面,打开Xcode的Editor菜单,选择最下方的“Refactor to Storyboard”

这里写图片描述

出现下图的弹出菜单,填入storyboard的名称,点save。

这里写图片描述

于是这三个页面被迁移到了Settings.storyboard中,而原来的main.storyboard相应的位置变成了一个名称为Settings的storyboard reference.

这里写图片描述

鼠标左键双击这个reference可以打开相应的storyboard,显示设置页、意见反馈页和关于页。

2.将storyboard reference关联到特定的页面

storyboard reference不但能将页面分离到新的storyboard并保持与之前storyboard中页面的逻辑关联,还能把任一storyboard中的页面与其他storyboard的页面建立联系。

建立账户页面,当用户不是登录状态时,提供登录入口和注册入口。账户页的入口为设置页的第一个cell,但我们希望在首页中也能让用户进入账户页。

在Settings.storyboard中新建账户页面和它的子页面,选中账户页,在右侧菜单栏中选择Identify inspector,在identity项的Storyboard ID中填入:AccountVC

这里写图片描述

切换到main.storyboard,从右侧菜单的下半部分中将Storyboard Reference拖进来,即新建了一个Storyboard Reference,选中这个Storyboard Reference,在右侧菜单中选择Attributes inspector, 在Storyboard 项选择Settings,即要链接的账户页面所属的storyboard;在Reference ID 项填入账户页的Storyboard ID,即AccountVC。

这里写图片描述

选中主页中的“账户”button,control+左键将箭头指向AccountVC Storyboard Reference,进入方式选择push。于是,主页与账户页的联系就建立完成了。

这里写图片描述

在main.storyboard中双击AccountVC Storyboard Reference可以直接跳转到Settings.storyboard中的账户页。运行程序,在主页点击账户button,成功跳转到账户页面。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值