利用IBSegueAction傳送資料到下一頁(心理測驗)

這次要練習的是要利用IBSegueAction將使用者在第一頁所選的資料傳送到下一頁,這部分雖然之前就聽過了,但是有聽沒有懂,直到這次聽完回家複習並練習這次的作業,終於對IBSegueAction有比較了解一點了,雖然花了半天的時間另外又問了peter好幾次,最後終於寫出來了,雖然這次寫的程式碼並沒有很多,不過心裡是有打算在之後有空的時候再來增加它的內容,那就之後再說了~

首先我的第一頁是利用兩個Button,然後依據使用者所選到的Button跳到下一個頁面,因為有兩個Button,所以我拉了兩個IBSegueAction

因為傳到第二頁是要傳一個String,所以在第二頁先產生一個變數型別為String,主要的是在IBSegueAction裡面的寫法,

@IBSegueAction func showAnswer1(_ coder: NSCoder) -> Answer1ViewController? {let controller = Answer1ViewController(coder: coder)controller?.text = answer1.currentTitlereturn controller}

裡面的text就是第二頁的變數,answer1則是第一頁的第一個Button,然後再第二頁寫上if else去判斷text上的String是第一個Button上的String,還是第二個,現在回想起來其實不是很難,只是在當下真的會讓人有點繞不出來的感覺,解開來之後真的就舒服了許多~

=======================================

PART2來了

有感於前一個練習內容實在是太少了,這次又多新增到六則心理測驗,使用的方法是在第二頁新增一個Button,按下去之後會回到第一頁,這個方法我使用的是unwind segue,這個之後peter會在上課中講到,因為之前聽過,所以就上網google作法,這部分還算簡單,前提是我已經將所有的題目,圖片,答案等相關的內容都寫在一個Array裡面,但問題來了,要怎樣順利的將點到的答案對應到對的內容呢,原本我是在第二頁中宣告變數i=0,然後想說利用i += 1的方式去寫,誰知道每次第一頁點選之後第二頁i都會從0開始跑,所以第二頁永遠都跑出一題的答案而已,之後還是受不了問了peter要怎麼解,結果還是得從IBSegueAction那邊動手,最後終於完成了,可以好好的睡一覺了~

--

--