zoukankan      html  css  js  c++  java
  • [转]结队开发之多storyboard

    转自Haven's Blog

     
    Storyboard的出现,让开发变得像讲故事一样,UI间的关系流程也一目了然。它其实是xib的升级版本,将多个xib统一管理了。任何事都有双面性,Storyboard也有它的缺点。笔者就说说自己的经验,版本管理中,多人修改很容易严生冲突。storyboard中UIViewController太多,找到想要的比较困难(特别是在MBA上)。 这些缺点在结队开发中就会遇见。 如果我们用xib文件,这样将UI最小化分隔开,将后用code将这些小单元连接起来,就可以解决这个问题。如果只用xib就展现不出storyboard的故事情节能力。
     
    本人提供两种解决方案:
    1. Xib link Xib
    2. Storyboard link Storyboard
     
    其实它们之间可以两两组合,这样就可以延伸出另外两种方法:
    3. Xib link Storyboard 
    4.Storyboard link Xib 
     
    1. Xib link Xib
    这种方法其实我以上一篇文章已经介绍过了,大家自行阅读,在此也不多述。
     
    2. Storyboard link Storyboard
    这种方法与上面方法原理是一样的,利用加载storyboard时,实例化对应自定义UIViewController类,然后手动addSubview到对link view上,以达到链接的目录。 用言语表达是有点抽象,还是用代码表达吧,容易理解。
     
    在这儿用到了Github上一个人写的link代码:RBStoryboardLink。它的用法也在README中说得很清楚了。
     
    大家将源码下载下来,里面有一个sample:LinkedTabs. 由于原作者用到了cocoapods,所以需要到源码LinkedTabs目录下, 运行一个命令行:
    1. pod update 
     
    我还是简单说一下sample的结构。
     
    里面有三个storyboard,分别是MainStoryboard,FirstTabStoryboard, SecondTabStoryboard, 现在需要将MainStoryboard中的两个UIViewController分别与FirstTabStoryboard,SecondTabStoryboard建立连接,以达到程序运行后,这三个storyboard像是在一起的目的。
     
    打开MainStoryboard,定位到Tab1的UIViewController 
     
    注意图中两个箭头,上面一个一定要填这个自定义类RBStoryboardLink, 就是个类完成了连接的任务。
     
    下面一个箭头处,是传递的属性与对应的值,在实例化RBStoryboardLink的时候传送递给实例化对象。storyboardName这个属性表示要link到哪儿去,这儿我们要link到FirstTabStoryboard,所以值为FirstTabStoryboard。还有一个可选属性sceneIdentifier, 表示要link到Storyboard中的哪一个UIViewController. 如果不传这个属性,那就link到FirstTabStoryboard中的initial View Controller.
     
    如果我们想link到FirstTabStoryboard中的第二个UIViewController那如何办呢,很简单: 
     
    如上图,我们先找到这个被linke的View Controller,然后在Storyboard ID那输入该View Controller的标识,如在此输入:NavController.
     
    接着在需要link的地方加入sceneIdentifier:NavController, 见下图箭头处。
     
     
    这样就link成功了。
     
    方法3与方法4只是组合出来的方法,也不在此多述了。
     
  • 相关阅读:
    LeetCode 2 -- Add Two Numbers
    LeetCode 1 -- Two Sum
    LeetCode189——Rotate Array
    Win10下IIS配置 C#项目的部署与发布
    Linux查看进程和删除进程
    使用 Visual Studio 将 ASP.NET Core 应用发布到 Linux 上的应用服务
    Spring Boot 设置启动时路径和端口号
    Linux平台部署.net Core SDK
    C#教程之如何在centos操作系统上发布.net core的项目
    Linux如何查看和控制进程
  • 原文地址:https://www.cnblogs.com/jz319/p/4094739.html
Copyright © 2011-2022 走看看