實作一個可以新增,讀取,刪除和儲存資料的 App ft. To Do Howeworks List

上次的To-Do-List 清單做完發現…Peter是會一直新增作業的,所以就要寫新增、刪除(其實刪除是無效的XD)並且具有儲存的功能。

  1. 新增的功能

當需要新增時,就需要一個新的Detail Table View Controller ,來將填入的資料儲存回傳回原來的HW Table View Controller,並在Navigation Item 下新增 Save 功能的Bar Button Item.

2. 建立一個新的Record.swift, 建立儲存、讀取與刪除的功能

3. Detail Table View Controller.swift指定給新增的Detail Table View Controller

定義代理人protocol並宣告一個property 是delegate, 拉 titleTextField @IBOutlet, 因title 已經在剛剛的Record. swift 的struct 裡定義為String, 所以可以record 讀取title

另外,當資料輸入按下Save Button 時,做一個資料空白的alert 判斷

4. HW Table View Controller

.因使用prepare傳送DetailTableViewController資料,所以要在Class 的地方加入DetailTableViewControllerDelegate.

.用append方式寫入records String.

這種落落長的程式,用excel 先做再貼到X-code裡會比較方便:

function initHomework使用append寫入資料,然後在viewDidLoad執行initHomework 的function. 並且因為之後新增的資料會出現在第一筆,所以將原來的資料降冪排列。

.其實在indexPathForSelectedRow寫儲存, 但拉完segue之後同時會跟didSelectRowAt的checkmark conflict, 所以我先把Cell to Segue 拿掉, 只保留 checkmark.

.美化一下版面,參考Peter這篇:

在HW ViewController 的viewDidLoad()下執行backgroundView 寫入Image View並調整alpha值為0.5呈現半透明

在Cell的Background 的地方設成Clear Color

4. 往左滑可以清除資料,同時跳出Alert 是否確定要刪除。

5. 寫入資料numberOfRowInSection&cellForRowAt&didSelectRowAt

能讓原來的資料在一開始載入並且新增儲存資料,下一版就是改版無敵破壞王Wreck It Ralph的Table View了,終於能讓神力與其他迪士尼公主們鳳還巢相遇了!

Stay doing homework Github!