前言
storyboard已經推出有幾年了,蘋果也一直賣力的引導開發(fā)者使用storyboard開發(fā),這點從我們創(chuàng)建工程衰粹,新工程以Main. storyboard創(chuàng)建window窗口就可以看出。然而很多開發(fā)者并不買賬,寧愿自己創(chuàng)建一個window钦无,花上相對于storyboard數(shù)倍的時間,用純代碼來搭建項目UI框架盖袭。
開發(fā)者這些心態(tài)也很好理解失暂,一是storyboard是一個相對較新的東西,而很多老程序員基本上都是純代碼過來的鳄虱,對storyboard的這個新的技術總報有一定的疑慮和謹慎態(tài)度弟塞,我甚至接觸過很多老程序員甚至不愿意用xib,整個項目全部是代碼構建的拙已;二是storyboard不便于多人協(xié)作開發(fā)决记,因為基本上一個storyboard文件把整個項目UI框架搭建起來了,多人同時操作一個storyboard文件容易起沖突倍踪。
基于以上兩點系宫,個人認為:
1. 先不論storyboard優(yōu)缺點,對于新技術我們都應持開放的態(tài)度惭适,去主動學習笙瑟,掌握其精華,批判性的為己所用.
2. 程序的世界變化得太快了癞志,每天都有框架和方法被淘汰往枷、被過時,我們要跳出自己的舒適區(qū),主動擁抱變化错洁,而不是質疑秉宿。
3. storyboard沖突問題其實很好解決,解決方案就是一人一個storyboard文件屯碴,各玩各的描睦。
下面回到本書的主題,一人一個storyboard開發(fā)导而,避免storyboard最大的缺點—沖突忱叭。
一. 先用Main. storyboard搭建項目框架
示例程序采用主流框架搭建形式,最外部是一個UITabBarController,下轄三個子模塊UINavgationController今艺,每個UINavgationController各帶rootViewController(本人默認你已有一定的storyboard基礎韵丑,此搭建詳情不講解)。搭建完成后程序運行效果如下:
運行結果沒有問題虚缎,你如果是一個人開發(fā)撵彻,那么恭喜你,基本UI框架你已經搭建完了实牡。但是你果是多人開發(fā)陌僵,請繼續(xù)往下看。
二.切割Main. storyboard
假設根據(jù)需求创坞,我需要把消息碗短、聯(lián)系人、設置三個模塊切割成對應的三個storyboard文件
-
選中要切割的模塊摆霉,這里以消息模塊為例
2.點擊xcode導航條Editor->Refactor to Storyboard
操作完后出現(xiàn)下面界面携栋,命名新的storyboard文件,并保存咳秉。
這時你的工程就新增加了一個Message. storyboard
到此第一個模塊切割完成,另外兩個模塊跟上述流程一樣澜建。完成后我們再看看Main. storyboard效果:
我們可以看到向挖,Main. storyboard被切割成了三個部分:Message. storyboard、Contact. storyboard炕舵、Set. storyboard何之,我們可以從容的把這三個文件分給對應的人去開發(fā),運行起來的效果也跟切割前一樣咽筋。
也可能有人會好奇:上圖的右邊三個箭頭指向的是什么呢溶推?好奇,請繼續(xù)往下看
三. Storyboard References
這是蘋果ios9新出來的一個概念,Xcode 7 上才能運行蒜危,上面我們切割Main. storyboard就是用到這個技術虱痕。
Storyboard References是什么呢?References辐赞,從字面上理解是“關聯(lián)”的意思部翘。沒錯,說的再高深响委,它的實質還是:把多個Storyboard關聯(lián)起來新思。
Storyboard References 允許你從 segue 中引用其他 storyboard 中ViewController。這樣可以讓我們輕松赘风、隨意的直接在一個Storyboard上關聯(lián)另一個Storyboard表牢,最終達到模塊化,組件化贝次,甚至可以復用的效果崔兴,同時也解決了一個Storyboard開發(fā)的臃腫、易沖突的問題蛔翅。
結束語
以前兩個Storyboard的關聯(lián),你需要用代碼方式獲取到Storyboard中的viewController山析,然后通過控制器之間的跳轉進行關聯(lián)堰燎。很麻煩,很煩人是不是笋轨?好了,索性 Storyboard References來了