心理測驗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,但因為我有太多要換行的,所以我在內容的上下各加入三個「“」,這樣就可以多行空格。

以下是模擬器的操作畫面:

以下是參考連結:

--

--