天天看點

Xcode7 之Storybord Reference

在過去大型項目中,是否想象過同一個storyboard下多個開發者開發時出現版本沖突的問題. 你将開發起來非常困難在同一個storyboard檔案上,因為你們每一個都可能點選它造成版本沖突. Now, Xcode7給我們解決了這個問題, 在Xcode7中,我們有一種新的的方式去組織我們的視圖在多個storyboard檔案,然後通過保持一個關聯在他們之間. 讓我們來看看一個練習的例子吧. 下載下傳我已近為你們準備好的 example .打開它,然後選擇Main.Storyboard,下面的圖檔展示出來這個storyboard.

Xcode7 之Storybord Reference

現在在Xcode7中我們試着可以将整個storyboard檔案切分為3個navigation分支成為3個storyboard檔案. 然而,當你試着從一個storyboard檔案跳到下一個storyboard檔案時,你不得不加載相關聯的storyboard檔案, 這就需要添加額外的代碼到你的項目中去.

Xcode7允許你建立多個storyboard,然後提供了很容易的解決辦法來操作它們. 讓我們繼續往下看, 選中頂部的navigationController和後面兩個viewController,

Xcode7 之Storybord Reference

一旦選中之後,打開Xcode7的菜單欄中的Editor,然後選擇Refactor to Storyboard (storyboard的反應器)

Xcode7 之Storybord Reference

配置設定一個名字給這個新的storyboard, 我給他命名為 First.storyboard.

Xcode7 之Storybord Reference

點選Save. 正如你看見的,一個新的storyboard已經被添加到你的項目中, 讓我們回到Main.storyboard. 這裡, 你将發現下面的object.

Xcode7 之Storybord Reference

這被稱作Storyboard Reference 它的确是相關到這個新建立的 First.storyboard 檔案,然後替換掉之前選中的三個控制器.最爽的部分是你輕按兩下這個storyboard Reference,Xcode7 會幫你打開相關聯的storyboard. 在這種方式下,你能夠很容易的導航到不同的storyboard同時很好地控制app的流程. 在運作的時候,當指向Storyboard Referencesegue的segue被執行的時候,相關聯storyboard的initial viewController被加載.

可選擇地, 你也可以手動建立一個新的storyboard,然後添加一個Storyboard Reference到這個原始的storyboard中,讓我們來嘗試一下.

建立一個新的storyboard命名為Third.storyboard. 在Main.storyboard檔案中,添加一個新的Storyboard Reference從Object Library中. 選中這個Storyboard Reference,打開相關的屬性檢查器(attributes Inspector), 如下圖:

Xcode7 之Storybord Reference

在第一個輸入框中, 選擇哪一個storyboard你想去關聯的(在這個例子中填 Third). Referenced 涉及到目的storyboard一個特定的場景, 如果你讓它為空, the initial viewController 将被加載. 最後, bundle field 需要被設定為包含destination storyboard的bundle的名字, 如果不填, 将預設設定為Main.storyboard的bundle.

在第三個storyboard檔案中, 你需要添加一個新的viewController,然後讓它成為 the initial viewController, 一旦你做完上訴那些, 你就能夠運作這個app和導航這個viewController就好像它就是這個Main.storyboard的一部分一樣.

是以, 現在你能組織你的storyboard 在多個檔案中, 然後在它們每一個之間保持吃一個相關性. 另外, 每一個storyboard 能夠被配置設定給不同的開發人員, 你不需要花跟多的時間去了解這些控制器怎麼被連接配接在一起的, 這個方法是在是太友善了.

翻譯至: https://www.invasivecode.com/weblog/storyboard-strong-iboutlet-scene-dock/