CIO
|
PCDIY!
|
旗標圖書
|
旗景數位影像
|
讀者服務
首 頁
即時新聞
業界動態
最新活動
企業採購
精選文章
線上教學
品牌活動
程式碼下載
雲端運算智庫
最近新增的
精選文章
AP內建AI引擎 Mist Cloud平台分析能力強 Juniper Mist AI領先全球 改善WiFi穩定、效能首選
解決IT供應鏈攻擊
內部威脅的七個警訊
遠百以專案辦公室推動數位體驗
多廠牌與多重電信業者網路架構的挑戰與機會
德明科大啟用電貿暨AI實習基地 ViewSonic ViewBoard 智慧互動電子白板 扮要角
淺談計算誤差
秀傳醫療體系統 以Lenovo HyperConverged HX 超融合架構扎穩智慧醫療發展基礎
模組化設計 偵測率達99.99% 全面防杜惡意郵件入侵 首選Cellopoint Email UTM
滿足網路管理與檔案安全傳輸需求,Ipswitch的MOVEit及WhatsUp Gold一次完整提供
來自學界的資料分析利器 - Weka 與 R
北醫建置肺癌資料庫,透過深度標註訓練AI,協助醫師早期發現癌症
北榮AI門診上路!人工智慧判讀腦瘤,有效縮短醫師確診時間
台灣智慧機器人玩具聯盟攜手英閱音躍研創 推廣T. Robot程式教育,協助國中小學扎根培養運算思維
一場與時間賽跑的戰役 ,人工智慧加速心血管疾病診斷
最多人點閱的
精選文章
免費IT建置--Linux系統操作與管理
初探Hadoop開放原始碼平台環境
免費IT建置--網頁伺服器的完美組合LAMP(下)
免費IT建置--檔案共享與檔案伺服器
Linux下的防火牆(基礎篇)
Linux下的防火牆(進階篇)
N.Y.BAGELS CAFE善用SAP Business One
手機程式設計入門與應用 Android、iPhone、Windows Mobile─ 影片播放器範例
手機程式設計入門與應用 Android、iPhone、Windows Mobile─ 線上查詢匯率
手機程式設計入門與應用 Android、iPhone、Windows Mobile─ 擲骰子遊戲
手機程式設計入門與應用 Android、iPhone、Windows Mobile─ 音樂播放器範例
手機程式設計入門與應用 Android、iPhone、Windows Mobile─ 來電黑名單
免費IT建置--網頁伺服器的完美組合LAMP(上)
手機程式設計入門與應用 Android、iPhone、Windows Mobile─ 繪圖板範例
手機程式設計入門與應用 Android、iPhone、Windows Mobile─ Matrix應用範例
精選文章 - 開發技術
分享到Plurk
分享到FaceBook
iOS程式開發與XCode4.X-Storyboard(下)
文‧圖/何孟翰
2012/6/8 下午 04:31:27
使用Segue作資料的傳遞
如此使用Segue看起來非常的視覺化,但是有一個地方需要注意,就是資料該如何去傳遞。因為你可以發現使用者介面是在Storyboard時被載入的,所以程式碼需要一些進入點來操作。
事實上在第一個ViewController到第二個ViewController時,Storyboard使用了一個機制叫作Segue,這個Segue可以在storyboard的主畫面中找到,你可以看到在第一個 Scene中有一個Push Segue如圖21。
▲
圖21 由第一個畫面至第二個畫面的Segue元件
請你點擊這個Segue之後打開它的屬性檢視器,在identifier中將它加入識別碼"showSecond"如圖22。
▲ 圖22 設定Segue的識別碼是showSecond
設定完成之後,請你照同樣的方式設定第二個ViewController的類別為SecondViewController,生成這個類別並且將它設定在storyboard之中。設定完成之後,由於從第一個畫面至第二個畫面,我們希望對這個新增加的ViewController有一些設定的效果,所以可以撰寫prepareForSegue: sender:來設定它。請注意,此處傳回的 segue就是被啟動的segue,而我們設定的identifier正是作為程式碼的判定,而在segue的這個類別實例中有一個函數destionationViewController,可以作為目的地的View Controller,如同圖18,這裡的目的ViewController就是SecondViewController。因此我們可以在程式碼中判定,如果傳回的是這個Segue,就將它的目標的ViewController設定成紅色的如圖 23。
▲ 圖23 修改prepareForSegue設定下一個ViewController的屬性
在模擬器上執行,當你按下Next之後,你可以看到這個畫面變成紅色的如圖24。
▲ 圖 24 在模擬器上執行的結果
載入沒有連結的View Controller
事實上Storyboard除了能夠如此的檔案中的ViewController透過Segue作連結,更重要的是它可以作為xib的集合,所以你可以將一些無關的ViewController都透過storyboard加入,並且再使用storyboard將它取出。
首先請你在storyboard中加入第三個ViewController,並且在它上面加入一些任意的內容如圖25。請注意它並不需要和其它的畫面有任何的連結。
▲ 圖 25 加入一個單獨的View Controller
但是此時請你注意,我們必須要能夠識別這個xib是哪一個xib,所以你必須在這個獨立的ViewController中增加它的Identifier如圖 26。
▲ 圖26 增加這個ViewController的Identifier
如此在程式中,你就可以使用storyboard來呼叫它。對於ViewController來說,可以呼叫self.storyboard來取得這個storyboard的實例,同時要取得其它的ViewController,你可以給它適當的類別之後呼叫instantiateViewControllerWithIdentifier並且填入圖26的識別碼即可。舉例而言,你可以在第二個ViewController,新增一個按鈕,並且增加一個IBAction並且建立它的連線如圖27。
▲ 圖 27 建立Storyboard的連線
如此在模擬器上執行的結果如圖28,在SecondViewController中會看到一個按鈕如圖 28。
▲ 圖 28 在模擬器上執行的結果
當按下Show之後,出現的畫面如圖29。
▲ 圖 29 按下Next之後顯示出的ViewController
請注意在這邊我們使用了presentViewController,這個函數在Storyboard中也有對應的 Segue可以對應,你可以使用Model來完成相對應的作用。
後記
在本文中我們大致說明了Xcode從xib檔到storyboard進化的歷程,也簡單的介紹了storyboard中的幾個重要的元件,也用UINavigationController作為storyboard的串場。事實上像是標籤列與表格,在storyboard中也有一些新的功能,我們將在後續的文章繼續討論。
回首頁...
關於RUN!PC
|
廣告刊登
|
聯絡我們
|
讀者服務
|
雜誌訂閱
|
出刊&補寄時間
-- Copyright© FLAG INFORMATION CO., LTD. 旗訊科技(股)公司. All rights reserved. 本站圖文著作權所有 未經授權 不得任意轉載使用 --
-- 請使用1024*768螢幕解析度,IE 7.0或firefox 3.0以上瀏覽器,以達到最佳閱讀效果--