[210328] 咖啡小知識選擇題☕️

No Coffee No Life!🤎

--

時代眼淚,當年很愛的一首歌😢居然已經 10 年了

挑戰目標:(還是有點不爭氣的查資料了🤣)

Coffee Q&A

有使用 Auto Layout!
但圓角總是會被咖到 + 小手機版面太擠,導致元件重疊QQ

Details

[ Storyboard ]

借助 Navigation Controller 的幫助,讓下一個畫面顯示時不會是由下往上出現。想要畫面美觀所以把 Navigation Bar 設定成不顯示了 ><

比較用心設計的只有 Question View Controller 的部分。
Description: 放題目敘述|Button x 5: 放答案選項

[ Files ]

  • HomeViewController.swift
  • QuestionViewController.swift
  • ResultViewController.swift

以上三者皆繼承 UIViewController

  • Questions.swift
  • Answer.swift

放題目以及答案(Questions|Answer)struct 裡面的 answer 放 a0 ~ a11
因為每題選項數量不一、至少 2 至多 5,所以Questions 裡面的 option2 ~ option4 型別是 Optional

為了跟 optionButtons 的 Array 一樣從 0 開始計算,所以用 0 起頭命名

[ Elements ]

  • Outlet

(一)QuestionViewController.swift

(1) currentQuestionLabel: 變題號
(2) questionLabel: 顯示題目
(3) optionButtons: 設定按鈕文字(答案選項)
(4) scoreLabel: 計算分數

(二)ResultViewController.swift

finalScoreLabel: 顯示最終分數(會從 Question 頁面傳過來)

  • func

replaceButton(): 變更題目以及選項。
以下只截圖部分,option 2, 3, 4 的條件內容都相同~

以上為 count < 10 的情況~若 count ≥ 10 則會跳去 Result

  • Action

(一)HomeViewController.swift

startTest(): performSegue,連結至 QuestionViewController

(二)QuestionViewController.swift

載入這頁時會先 suffle 題庫,並且配置題目以及選項按鈕

(1) selectOption(): 判斷作答正確性(設置蠻多 print 檢查,有助釐清思緒)

num = optionButtons 的順序(0 ~ 4)

點擊的按鈕 Title 等於答案 → 答對 → 分數增加&顯示分數改變(→ 答錯 → 沒有事件發生)
if else 判斷結束 → 下一題~

(2) jumpToResult(): 將此頁得分傳至結果頁面

❗️要傳值去別的頁面,一定要在目的地設變數迎接要過去的值❗️

⬇️ ⬇️ ⬇️ ⬇️ ⬇️ 確認過眼神,是要過來的值!⬇️ ⬇️ ⬇️ ⬇️ ⬇️

(三)ResultViewController.swift

jump(): 返回首頁再玩一次~

Mur

學會了比 protocol 跟 delegate 還簡單的頁面傳值方法,真開心!🥰但其實重複看了很多遍上課內容,以為自己懂了結果…並沒有好嗎

這次作業做的內容跟咖啡有關,默默很開心><
感覺這些知識超冷門,第一次答的時候完全呈現「???」(其實現在也還沒把答案背起來XD)

好啦不打了!慣例的甜點照!🍎パフェ♡大好き🍏

--

--