storyboard搭建项目_轻松搞定一人一个storyboard开发
前言
storyboard已經(jīng)推出有幾年了,蘋果也一直賣力的引導(dǎo)開(kāi)發(fā)者使用storyboard開(kāi)發(fā),這點(diǎn)從我們創(chuàng)建工程,新工程以Main. storyboard創(chuàng)建window窗口就可以看出。然而很多開(kāi)發(fā)者并不買賬,寧愿自己創(chuàng)建一個(gè)window,花上相對(duì)于storyboard數(shù)倍的時(shí)間,用純代碼來(lái)搭建項(xiàng)目UI框架。
開(kāi)發(fā)者這些心態(tài)也很好理解,一是storyboard是一個(gè)相對(duì)較新的東西,而很多老程序員基本上都是純代碼過(guò)來(lái)的,對(duì)storyboard的這個(gè)新的技術(shù)總報(bào)有一定的疑慮和謹(jǐn)慎態(tài)度,我甚至接觸過(guò)很多老程序員甚至不愿意用xib,整個(gè)項(xiàng)目全部是代碼構(gòu)建的;二是storyboard不便于多人協(xié)作開(kāi)發(fā),因?yàn)榛旧弦粋€(gè)storyboard文件把整個(gè)項(xiàng)目UI框架搭建起來(lái)了,多人同時(shí)操作一個(gè)storyboard文件容易起沖突。
基于以上兩點(diǎn),個(gè)人認(rèn)為:
1. 先不論storyboard優(yōu)缺點(diǎn),對(duì)于新技術(shù)我們都應(yīng)持開(kāi)放的態(tài)度,去主動(dòng)學(xué)習(xí),掌握其精華,批判性的為己所用.
2. 程序的世界變化得太快了,每天都有框架和方法被淘汰、被過(guò)時(shí),我們要跳出自己的舒適區(qū),主動(dòng)擁抱變化,而不是質(zhì)疑。
3. storyboard沖突問(wèn)題其實(shí)很好解決,解決方案就是一人一個(gè)storyboard文件,各玩各的。
下面回到本書(shū)的主題,一人一個(gè)storyboard開(kāi)發(fā),避免storyboard最大的缺點(diǎn)—沖突。
一. 先用Main. storyboard搭建項(xiàng)目框架
image1.png
示例程序采用主流框架搭建形式,最外部是一個(gè)UITabBarController,下轄三個(gè)子模塊UINavgationController,每個(gè)UINavgationController各帶rootViewController(本人默認(rèn)你已有一定的storyboard基礎(chǔ),此搭建詳情不講解)。搭建完成后程序運(yùn)行效果如下:
image2.png
運(yùn)行結(jié)果沒(méi)有問(wèn)題,你如果是一個(gè)人開(kāi)發(fā),那么恭喜你,基本UI框架你已經(jīng)搭建完了。但是你果是多人開(kāi)發(fā),請(qǐng)繼續(xù)往下看。
二.切割Main. storyboard
假設(shè)根據(jù)需求,我需要把消息、聯(lián)系人、設(shè)置三個(gè)模塊切割成對(duì)應(yīng)的三個(gè)storyboard文件
選中要切割的模塊,這里以消息模塊為例
圖中1是導(dǎo)航控制器,2是導(dǎo)航的根控制器
2.點(diǎn)擊xcode導(dǎo)航條Editor->Refactor to Storyboard
這一步操作就是重置你選中的模塊文件,生成新的storyboard文件
操作完后出現(xiàn)下面界面,命名新的storyboard文件,并保存。
命名,保存
這時(shí)你的工程就新增加了一個(gè)Message. storyboard
切割出來(lái)的Message. storyboard
到此第一個(gè)模塊切割完成,另外兩個(gè)模塊跟上述流程一樣。完成后我們?cè)倏纯碝ain. storyboard效果:
切割完的Main. storyboard
我們可以看到,Main. storyboard被切割成了三個(gè)部分:Message. storyboard、Contact. storyboard、Set. storyboard,我們可以從容的把這三個(gè)文件分給對(duì)應(yīng)的人去開(kāi)發(fā),運(yùn)行起來(lái)的效果也跟切割前一樣。
也可能有人會(huì)好奇:上圖的右邊三個(gè)箭頭指向的是什么呢?好奇,請(qǐng)繼續(xù)往下看
三. Storyboard References
這是蘋果ios9新出來(lái)的一個(gè)概念,Xcode 7 上才能運(yùn)行,上面我們切割Main. storyboard就是用到這個(gè)技術(shù)。
Storyboard References是什么呢?References,從字面上理解是“關(guān)聯(lián)”的意思。沒(méi)錯(cuò),說(shuō)的再高深,它的實(shí)質(zhì)還是:把多個(gè)Storyboard關(guān)聯(lián)起來(lái)。
Storyboard References 允許你從 segue 中引用其他 storyboard 中ViewController。這樣可以讓我們輕松、隨意的直接在一個(gè)Storyboard上關(guān)聯(lián)另一個(gè)Storyboard,最終達(dá)到模塊化,組件化,甚至可以復(fù)用的效果,同時(shí)也解決了一個(gè)Storyboard開(kāi)發(fā)的臃腫、易沖突的問(wèn)題。
結(jié)束語(yǔ)
以前兩個(gè)Storyboard的關(guān)聯(lián),你需要用代碼方式獲取到Storyboard中的viewController,然后通過(guò)控制器之間的跳轉(zhuǎn)進(jìn)行關(guān)聯(lián)。很麻煩,很煩人是不是?好了,索性 Storyboard References來(lái)了
總結(jié)
以上是生活随笔為你收集整理的storyboard搭建项目_轻松搞定一人一个storyboard开发的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: AVB源码学习(一):AVB2.0工作原
- 下一篇: 中望CAD教程:如何将PDF转化为DWG