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)

      的内容,更多

storyboardReferenceiOS10

      的内容,请您使用右上方搜索功能获取相关信息。

來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

StoryBoard拆分(Storyboard References)的更多相关文章

  1. iOS之Storyboard References

    如果你曾经使用 interface builder 创建过一个复杂.界面非常多的应用,你就会明白最后那些Storyboards 文件变的有多大.他会迅速变的无法管理,阻碍你的进度.自从引入 Story ...

  2. iOS 9 学习系列:Storyboard References

    http://www.cocoachina.com/ios/20150922/13474.html 如果你曾经使用 interface builder 创建过一个复杂.界面非常多的应用,你就会明白最后 ...

  3. storyboard,xib

    1. 从xib的viewcontroll中启动storyboard 或者 从一个storyboard切换到另一个storyboard: – (IBAction)openStoryboard:(id)s ...

  4. 多个Storyboard的使用

    创建一个Storyboard工程 storyboard是在ios5中引入的新控件,能够更加清晰.简单的整合多个ViewController的关系,下面主要介绍一下怎么初建一个storyboard的工程 ...

  5. 一个tabBarController管理多个Storyboard

    随着项目的业务逻辑越来越复杂,随着项目越来越大,那么我们Storybard中得控制器就越来越多, 就越来越难以维护.然而使用Storyborad又能更方便的帮助我们做屏幕适配(PS:尤其在6.6+出来 ...

  6. swift项目第五天:swift中storyBoard Reference搭建主界面

    一:StoryBoard Reference的介绍 StoryBoard Reference是Xcode7,iOS9出现的新功能 目的是让我们可以更好的使用storyboard来开发项目 在之前的开发 ...

  7. 代码中使用StoryBoard和DoubleAnimation的方法

    TranslateTransformを対象に.DoubleAnimation型のアニメーションを使用して.TranslateTransform.Xプロパティを ”-1 * Imageコントロールの幅” ...

  8. UWP开发入门(二十二)——Storyboard和Animation

    微博上有同学问我MyerSplash是如何实现那个很炫的图片点亮,然后移动到屏幕中央的效果.惭愧啊,我又不是作者哪里会知道.硬着头皮去GitHub拜读了高手的代码,自愧弗如,比我不知道高到哪里去了…… ...

  9. 代码创建storyboard

    代码创建storyboard方式如下 // 加载storyboard UIStoryboard *storyboard = [UIStoryboard StoryboardWithName:@&quo ...

随机推荐

  1. PAT甲级——A1121 Damn Single【25】

    "Damn Single (单身狗)" is the Chinese nickname for someone who is being single. You are suppo ...

  2. 结合sessionStorage解决vuex页面刷新数据丢失的问题

    将需要保存在vuex中的数据同时保存在sessionStorage中即可: import Vue from 'vue'; import Vuex from 'vuex'; Vue.use(Vuex); ...

  3. Spring Boot 实现定时任务的 4 种方式

    作者:Wan QingHua wanqhblog.top/2018/02/01/SpringBootTaskSchedule/ 定时任务实现的几种方式: Timer:这是java自带的java.uti ...

  4. mybatis-plus分页查询

    在springboot中整合mybatis-plus 按照官方文档进行的配置:快速开始|mybatis-plus 引入依赖: <!-- 引入mybatisPlus --> <depe ...

  5. <随便写>同步,异步进程池,线程

    from multiprocessing import Pool import time import os def work(n): print("%s run" % os.ge ...

  6. 《代码整洁之道》ch5~ch9读书笔记 PB16110698(~3.15) 第二周

    <代码整洁之道>ch5~ch9读书笔记 本周我阅读了本书的第5~9章节,进一步了解整洁代码需要注意的几个方面:格式.对象与数据结构.错误处理.边界测试.单元测试和类的规范.以下我将分别记录 ...

  7. html--垂直居中

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  8. leetcode-117-填充每个节点的下一个右侧节点指针②

    ---恢复内容开始--- 题目描述: 方法一:层次遍历 """ # Definition for a Node. class Node: def __init__(sel ...

  9. 廖雪峰Java14Java操作XML和JSON-2JSON-2处理JSON

    解析JSON JSR 353 API 常用的第三方库 * Jackson * gson * fastjson Jackson: 提供了读写JSON的API JSON和JavaBean可以互相转换 可食 ...

  10. SQLite C++操作种

    SQLite C++操作类 为了方便SQLite的使用,封装了一个SQLite的C++类,同时支持ANSI 和UNICODE编码.代码如下:   头文件(SQLite.h) /************ ...