心理測驗App
作業目的: 熟練資料傳遞的技巧。
首先我先在storyboard建立多個view controller跟navigation bar controller,再來設置元件。
因為我有很多個view controller,所以我將主要的兩個controller重新命名,方式如下:
接著點選我要改的view controller來改。
接著,我先設定一個新的file,來定義我的題目&選項答案的屬性(Stiring之類的)。
設定好後,我在點擊button選項view controller(QuestionsViewController)加入我的題庫。
接著我先拉我會用到的outlet。
並且宣告我會用到的function跟變數。
接著我再來連button的IBAction,並且寫程式。
*當使用者點擊button時,將測驗的特質加入到answerString裡面,方便最後結果使用。
題目總共有四題,當index等於4的時候,使用 performSegue(withIdentifier: sender:) 換頁。
這裡大家會發現withIdentifier: “End”,這個end是哪裡來的呢?
首先,我們要先把兩個controller拉線連結,作法如下:
這個拉線的名字我設定為End。
因此我在程式中的withIdentifier才會寫End。
接著,我再來拉IBSegueAction,利用它來傳送資料。
*因為同時串連兩個頁面,一定要將拉線放在第一個controller裡來寫程式。
接著,我們再去顯示結果的controller(ResultViewController)寫程式。
一樣,我先拉label的outlet,方變我後面寫程式用。
接著我要透過init來接收前一頁所傳的值。
接下來,我要先寫一個function來顯示最後結果的16種性格,最後再將function放上viewDidLoad裡。
因為總共要寫16個,function很長,所以我只節錄部分就好。
*字串裡如果要顯示空格可以用\n,但因為我有太多要換行的,所以我在內容的上下各加入三個「“」,這樣就可以多行空格。
以下是模擬器的操作畫面:
以下是參考連結: