[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)
好啦不打了!慣例的甜點照!🍎パフェ♡大好き🍏