StoryBoard拆分(Storyboard References)
https://www.jianshu.com/p/78dc76204c8e
- iOS UI篇10- Storyboard(Storyboard Reference)
https://www.aliyun.com/jiaocheng/390838.html
- 摘要:在Xcode7中,我们有一个在多个storyboards中组织scenes的新方法,并且能对它们进行引用。直接看Main.storyboard文件。我已经为了准备好了一系列组织在一个tabBarController下Viewcontroller。每一个tab包含一个NavigationController。下面的图片强调了示例项目的storyboard部分:正如你所看到的那样,tabbarcontroller包含了三个navigationcontroller。每一个navig
在Xcode 7中,我们有一个在多个storyboards中组织scenes的新方法,并且能对它们进行引用。
直接看Main.storyboard文件。我已经为了准备好了一系列组织在一个tabBar Controller下View controller。每一个tab包含一个Navigation Controller。
下面的图片强调了示例项目的storyboard部分:
正如你所看到的那样,tab bar controller包含了三个navigation controller。每一个navigation controller控制着不同的视图控制器。现在,想象一下在这个项目里和其他开发者一起工作。正如我前面描述的那样,使用同一个storyboard文件是非常令人头疼的,因为你们每个人都会修改它。你可以把着三个navigation分支分割成三个storyboard文件。然而,当你准备在运行期从一个storyboard跳转到另外一个时,你必须加载相应的storyboard文件。这需要增加额外的代码。
xcode 7允许你创建多个storyboards,并且可以方便地操纵它们。选择顶部的navigation controller 以及两个view controller,如下图所示:
选择好之后,打开菜单栏的Editor,然后选择Refactor to Storyboard(如图)
为新的storyboard取一个名字(如图)。我将它命名为First.storyboard。
点击保存。正如你所见到的那样,一个新的storyboard已经被添加到你的项目中了。让我们回到Main.storyboard,你将会看到如下的对象。
这个称之为Storyboard Reference,它确实为新建的First.storyboard的引用,并且替换了先前选择的三个view controller。最棒的是如果你双击storyboard引用,Xcode 7会打开所引用的storyboard。因此,当你想要控制应用流时,你可以方便地导向不同的storyboard。在运行期间,当segue指向的一个Storyboard Reference被执行时,这个被引用的storyboard中的初始化view controller会被加载。此外,Storyboard References还能够引用相同的storyboard。
另外,你也可以手工创建一个新的storyboard,然后添加一个Storyboard Reference到起始的storyboard中。让我们来试一下。
创建一个新的storyboard并命名为Third.storyboard。在Main.storyboard文件中,从Object Library中添加新的Storyboard Reference。选择Storyboard Reference并且打开相应的Attributes Inspector。如下图所示:
在这个字段中,选择你想要引用的storyboard(在我们的例子中是Third)。如果这个字段为空白,则被引用的storyboard是定义的Storyboard Reference。Reference ID指向在目的storyboard中的一个特定scene。如果你置空的话,初始化view controller会加载。
最后,Bundle字段需要被置为包含目的storyboard的bundle。如果你留空的话,就会使用源storyboard的bundle。
在Third.storyboard文件中,你需要添加一个新的view controller并将其作为初始化的view controller。之后,只要view controller是Main storyboard的一部分,你可以都可以运行app并且导航到那里。
所有,现在你可以在多个文件里组织你的storyboard,并且可以保持这些storyboard的引用。此外,每一个storyboard能够被分配给一个不同的开发者,而你不需要去考虑view controller间的连接组合。
以上是
iOS UI篇10- Storyboard(Storyboard Reference)
- 的内容,更多
- 的内容,请您使用右上方搜索功能获取相关信息。
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
StoryBoard拆分(Storyboard References)的更多相关文章
- iOS之Storyboard References
如果你曾经使用 interface builder 创建过一个复杂.界面非常多的应用,你就会明白最后那些Storyboards 文件变的有多大.他会迅速变的无法管理,阻碍你的进度.自从引入 Story ...
- iOS 9 学习系列:Storyboard References
http://www.cocoachina.com/ios/20150922/13474.html 如果你曾经使用 interface builder 创建过一个复杂.界面非常多的应用,你就会明白最后 ...
- storyboard,xib
1. 从xib的viewcontroll中启动storyboard 或者 从一个storyboard切换到另一个storyboard: – (IBAction)openStoryboard:(id)s ...
- 多个Storyboard的使用
创建一个Storyboard工程 storyboard是在ios5中引入的新控件,能够更加清晰.简单的整合多个ViewController的关系,下面主要介绍一下怎么初建一个storyboard的工程 ...
- 一个tabBarController管理多个Storyboard
随着项目的业务逻辑越来越复杂,随着项目越来越大,那么我们Storybard中得控制器就越来越多, 就越来越难以维护.然而使用Storyborad又能更方便的帮助我们做屏幕适配(PS:尤其在6.6+出来 ...
- swift项目第五天:swift中storyBoard Reference搭建主界面
一:StoryBoard Reference的介绍 StoryBoard Reference是Xcode7,iOS9出现的新功能 目的是让我们可以更好的使用storyboard来开发项目 在之前的开发 ...
- 代码中使用StoryBoard和DoubleAnimation的方法
TranslateTransformを対象に.DoubleAnimation型のアニメーションを使用して.TranslateTransform.Xプロパティを ”-1 * Imageコントロールの幅” ...
- UWP开发入门(二十二)——Storyboard和Animation
微博上有同学问我MyerSplash是如何实现那个很炫的图片点亮,然后移动到屏幕中央的效果.惭愧啊,我又不是作者哪里会知道.硬着头皮去GitHub拜读了高手的代码,自愧弗如,比我不知道高到哪里去了…… ...
- 代码创建storyboard
代码创建storyboard方式如下 // 加载storyboard UIStoryboard *storyboard = [UIStoryboard StoryboardWithName:@&quo ...
随机推荐
- service资源
service的作用:帮助外界用户访问k8s内的服务,并且提供负载均衡 创建一个service vim k8s_svc.yml apiVersion: v1 kind: Service metadat ...
- 第十九篇:Mysql两次Group by和ip转数字作比较的一次优化
业务场景:两张表,ipconfig_group表存了单位和 ip 起始段信息 visit_info表存储了访问次数,失败次数,访问流量,用户ip等信息 两张表的关系为: 一个部门下有若干ip段, ...
- <Django> MVT三大块之Models(模型)
1.ORM(对象-关系-映射)---面向对象,不需要面向SQL语句 根据对象的类型生成表结构 将对象.列表的操作,转化成SQL语句 将SQL语句查询的结果转化成对象.列表 目的:实现数据模型与数据库的 ...
- Mid-Atlantic 2008 Lawrence of Arabia /// 区间DP oj21080
题目大意: 输入n,m 输入n个数 将n个数切割m次分为m+1段,使得各段的Strategic Value总和最小 一组数a b c d的SV值为 a*b + a*c + a*d + b*c + b* ...
- docker上安装ActiveMQ
1.查看是否已经存在镜像 docker images 2.搜索镜像 docker search activemq 3.拉取镜像 docker pull webcenter/activemq 4.构建容 ...
- Idea 2018.2.5创建springboot项目依赖包没有的错误
- JS规则 确定你的存在(变量声明) 声明变量语法: var 变量名; 一次声明多个,中间用逗号隔开var num1,mun2 ;
确定你的存在(变量声明) 我们要使用盒子装东西,是不是先要找到盒子,那在编程中,这个过程叫声明变量,找盒子的动作,如何表示: 声明变量语法: var 变量名; var就相当于找盒子的动作,在JavaS ...
- 【转载】TCP演进简述
TCP演进简述 http://www.cnblogs.com/fll/ 一.互联网概述 TCP,即传输控制协议,是目前网络上使用的最多的传输协议,我们知道,整个互联网的体系结构是以IP协议提供的无连接 ...
- C# FTP上传下载(支持断点续传)
<pre class="csharp" name="code"><pre class="csharp" name=&quo ...
- 深入浅出 Java Concurrency (28): 线程池 part 1 简介[转]
从这一节开始正式进入线程池的部分.其实整个体系已经拖了很长的时间,因此后面的章节会加快速度,甚至只是一个半成品或者简单化,以后有时间的慢慢补充.完善. 其实线程池是并发包里面很重要的一部分,在实际情况 ...