『約翰紅茶公司訂飲料app』2.0

POST,儲存網路資料

--

上次做完第一個訂飲料app版本後,就調整了一些功能,也花時間了解一些似懂非懂的地方。

UI介面架構圖

習慣先拉好介面,想好要做的功能,比較不會亂掉。

  • tabbar[0]=menu的部分,menu上方可以透過segment切換三種基底的茶。

這邊是透過把菜單分為三個api下載下來的,上篇有寫到。

  • tabar[1]=訂飲料的部分。
  • tabbar[2]=顯示訂購資料跟修改訂購資料。

新增一個Swift file去自訂所有array的型別:

設定編輯訂單頁面

把outle拉好以利後續動作。

宣告變數

此菜單是新的api,有所有飲料的menu

要將菜單資料function寫在viewDidLoad中,才會在一開始就抓到網路資料顯示!

選到對應的飲料跟價格

在上面下載菜單資訊的function中下載完菜單後,把預設的第一個order指定給selectedDrink,就可以拿到名稱跟價格

更新飲料選到第幾杯跟價錢

控制飲料選項(下載網路menu資料)

用setEnabled(false, forSegmentAt: 0)去讓選項隱藏跟顯示,segmentControl可能有更好的寫法~之後可以再改進。

在選擇飲料的button有個 updateSizeSegmentedControl()

為了讓使用者換飲料時更新為中杯

控制飲料容量價格,如果選大杯會是售價加五元。加珍珠為價格加五元,也會顯示加珍珠的字樣在名字欄位(但這部分可能還會再修改)。

提示訊息的function(會寫在送出訂單的button中)

按下確認鍵後會先檢查姓名欄位使否為空值,如果是,就會呼叫showAlert的Function:

資料儲存及上傳

透過網頁了解寫起來會順很多,比較知道寫的意義在哪邊。

不懂的時候怎麼寫都怪XD

sheetDB 預設值是 Get!

編輯頁面的最後是按送出訂單button將資料送出(上傳至網路表單)

這邊寫了兩個function,一個是post function讓資料可以POST,另一個是儲存新資料最後利用post 這個function上傳。

把不懂的地方理解會更好看懂!

function內的參數,上傳的資料是List型別(型別名稱要和網路上的名稱一模一樣)

設置Content-Type header為application/json,告知伺服器我要送哪種形式的body過去。Content-Type 表頭欄位,是指相關 表示 的 媒體類型 (Media Type),用於定義資料格式 (data format),以供接收者以相應的方式處理。

儲存新資料後上傳

送出資料

訂飲料頁面總算寫完了,雖然還有些地方需要做修改~

Github:

https://github.com/yvonne4funfun/funsdrink2.1

--

--