MVC

View

storyboard 畫面

若一個 controller 有多個 segue

  1. 從一個 segue 拉一個 IBSegueAction
  2. 其他 segue:從 segue 拉到 IBSegueAction
  3. ID:每個 segue 設定 ID(或從 sender 設定,之後教)
  4. IBSegueAction 的 func:自己增加2個參數(sender, segueIdentifier),並以判斷式決定要傳到哪裡
  5. 確認 segue 的 slelctor 內的參數是否包含剛剛增加的參數(如下圖)

Model

Question.Swift

用 array 儲存題目,以及該題目得到的分數

Btn.Swift

配合 getScore( userBtn: Btn ) 取得使用者按的選項代表的分數

程式碼在下方第一頁的部分

PersonalityTrait.Swift

用 array 儲存分析的人格特質結果

用 struct 定義 OceanScore 型別,方便一次傳多筆資料

Controller

第一頁:ViewController

  • 3 個 function:
  1. getScore:取得使用者按 Btn 代表的分數,並儲存至 array 裡(於 Question.Swift 裡創建的 array)
  2. addUpScore:計算五種人格特質的分數
  3. updateUI:更換題目內容
  • 每個 Button 按下去會觸發 getScore( ) 取得分數
  • IBSegueAction 傳資料 & 資料重置

要先在下一頁定義 property 以儲存要傳的資料

第二頁:ScoreTableViewController

  • updateUI( ) 將前一夜傳過來的資料顯示於畫面
  • 傳資料到第三頁

一樣先在下一頁定義 property 以儲存要傳的資料

  • IBSegueAction:依照在 segue 設定的 ID 傳不同的資料

第三頁:AnalyzeViewController

  • updateUI( )
  • playAgain:跳回第一個畫面

之前傳完資料後就已經歸零了,故不需另外設定

參照同學們的作業,大多數都是使用 dismiss,但我的用 dismiss 沒有作用,就使用 popToRootViewController

--

--