#4. 利用 navigation controller 實作 2 個頁面 — 介紹動物明星
雖說作業是利用navigation controller實作2個頁面,但其實重點是兩個頁面間的參數傳遞。這週上課Peter教了如何利用swift內建的function傳遞參數。
如同往常,先在storyboard上拉好想要的頁面配置,這次和之前不同的是使用了tableViewController。使用tableViewController時,你可以在上面增加很多Table View Cell。我的話是在Table View Cell上放了一個image view,最上面再疊了一個透明button。
畫面都拉好以後,有一個重點你一定要記得,否則會發生和我一樣查不出原因的compile成功,但是上面的button和image view卻都沒出現?!!!
那就是,因為table view通常都是接資料的,所以content通常預設為dynamic prototypes,但是如果你是客製的table,請改為static cells。
確認畫面都正常出現之後,可以先新增兩個.swift。此次分別取名為HomeTableViewController和SubViewController。
新增方式:File>New>File>cocoa touch class
接著將storyboard的兩個view controller的class分別指定使用這兩個新增的.swift。
使用Table View Controller產生的.swift中,也會自動生成部分function,其中產生view及rows的function會預設回傳0,所以要記得修改。
接著在subViewController.swift中定義一個變數,承接由前一個頁面傳遞的參數。(參數不限定只能傳遞一個)
接著取消HomeTableViewController.swift中預設被mark掉的function,並利用segue的identifier來傳遞參數至SubViewController.swift
SubViewController.swift要做的事,只要將傳遞過來的type進行if..else判斷,分別依type顯示不同的圖片及label內容。
雖然寫完了但是這樣感覺弱弱的,因為要寫很多組判斷式,希望Peter下次教讀寫檔案時可以融會貫通,這樣就可以改寫App讓它更fancy了。