300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > storyboard搭建项目_轻松搞定一人一个storyboard开发

storyboard搭建项目_轻松搞定一人一个storyboard开发

时间:2022-08-25 17:37:33

相关推荐

storyboard搭建项目_轻松搞定一人一个storyboard开发

前言

storyboard已经推出有几年了,苹果也一直卖力的引导开发者使用storyboard开发,这点从我们创建工程,新工程以Main. storyboard创建window窗口就可以看出。然而很多开发者并不买账,宁愿自己创建一个window,花上相对于storyboard数倍的时间,用纯代码来搭建项目UI框架。

开发者这些心态也很好理解,一是storyboard是一个相对较新的东西,而很多老程序员基本上都是纯代码过来的,对storyboard的这个新的技术总报有一定的疑虑和谨慎态度,我甚至接触过很多老程序员甚至不愿意用xib,整个项目全部是代码构建的;二是storyboard不便于多人协作开发,因为基本上一个storyboard文件把整个项目UI框架搭建起来了,多人同时操作一个storyboard文件容易起冲突。

基于以上两点,个人认为:

1. 先不论storyboard优缺点,对于新技术我们都应持开放的态度,去主动学习,掌握其精华,批判性的为己所用.

2. 程序的世界变化得太快了,每天都有框架和方法被淘汰、被过时,我们要跳出自己的舒适区,主动拥抱变化,而不是质疑。

3. storyboard冲突问题其实很好解决,解决方案就是一人一个storyboard文件,各玩各的。

下面回到本书的主题,一人一个storyboard开发,避免storyboard最大的缺点—冲突。

一. 先用Main. storyboard搭建项目框架

image1.png

示例程序采用主流框架搭建形式,最外部是一个UITabBarController,下辖三个子模块UINavgationController,每个UINavgationController各带rootViewController(本人默认你已有一定的storyboard基础,此搭建详情不讲解)。搭建完成后程序运行效果如下:

image2.png

运行结果没有问题,你如果是一个人开发,那么恭喜你,基本UI框架你已经搭建完了。但是你果是多人开发,请继续往下看。

二.切割Main. storyboard

假设根据需求,我需要把消息、联系人、设置三个模块切割成对应的三个storyboard文件

选中要切割的模块,这里以消息模块为例

图中1是导航控制器,2是导航的根控制器

2.点击xcode导航条Editor->Refactor to Storyboard

这一步操作就是重置你选中的模块文件,生成新的storyboard文件

操作完后出现下面界面,命名新的storyboard文件,并保存。

命名,保存

这时你的工程就新增加了一个Message. storyboard

切割出来的Message. storyboard

到此第一个模块切割完成,另外两个模块跟上述流程一样。完成后我们再看看Main. storyboard效果:

切割完的Main. storyboard

我们可以看到,Main. storyboard被切割成了三个部分:Message. storyboard、Contact. storyboard、Set. storyboard,我们可以从容的把这三个文件分给对应的人去开发,运行起来的效果也跟切割前一样。

也可能有人会好奇:上图的右边三个箭头指向的是什么呢?好奇,请继续往下看

三. Storyboard References

这是苹果ios9新出来的一个概念,Xcode 7 上才能运行,上面我们切割Main. storyboard就是用到这个技术。

Storyboard References是什么呢?References,从字面上理解是“关联”的意思。没错,说的再高深,它的实质还是:把多个Storyboard关联起来。

Storyboard References 允许你从 segue 中引用其他 storyboard 中ViewController。这样可以让我们轻松、随意的直接在一个Storyboard上关联另一个Storyboard,最终达到模块化,组件化,甚至可以复用的效果,同时也解决了一个Storyboard开发的臃肿、易冲突的问题。

结束语

以前两个Storyboard的关联,你需要用代码方式获取到Storyboard中的viewController,然后通过控制器之间的跳转进行关联。很麻烦,很烦人是不是?好了,索性 Storyboard References来了

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。