To Do List — CRUD、UserDefault資料儲存、設定時間與推播通知
先來看看成果:To Do List 功能包含
Part.1
- 新增、刪除事項
- To Do List Button 打勾完成事項 (需判斷UIButton所在Cell位置)
- 兩個 Section 一個代辦事項、一個完成事項 (兩個 Section 互相傳遞)
Part.2
- 編輯 List 順序 (兩個 Section 不能互相編輯!固定在自己Section內移動!)
Part.3
- 換頁更改代辦事項、加入備註note
Part.4
- UserDefault 存取與讀取資料
- 剛剛編輯的List順序,修改的代辦事項還有備註,關掉 App 重新開啟資料依然都在。
Part.5
- 設定日期、推播通知 (實機測試!!!)
Part.6
- 使用Switch 控制 Cell 顯示/隱藏
Part.7
- 設置App icon 和啟動畫面
可以看這篇文章~~~
Part.1
- To Do List Button 打勾完成事項 (需判斷UIButton所在Cell位置)
- TableView動態 cell 如何連結Button~~~ 看這篇
2. 如何判斷UIButton所在Cell位置~~~ 看這篇
- 兩個 Section 一個代辦事項、一個完成事項 (兩個 Section 互相傳遞)
上方 UNDONE Section 按下 cell Button 移至下方 FINISH Section
- 完成代辦事項移至下方 FINISH Section 字體“灰色斜體刪除線”
完整 NSMutableAttributedString屬性 可以看這篇~~~
Part.2
- 編輯 List 順序 (兩個 Section 不能互相編輯!固定在自己Section內移動!)
- 先控制讓兩個 Section 不能互相編輯!固定在自己Section內移動!
2. 要編輯 List 順序需要使用 moveRowAt fromIndexPath
Part.3
- 換頁更改代辦事項、加入備註note
- 換頁 要將 ToDoList的title傳到下一頁的text_Input
- 使用 prepare 將 segue.destination 目標指定給下一個頁面DetailTableViewController
- 就可以取得 DetailTableViewController 裡面設置的數值
- 將點選的todolist 值 傳給下一頁
- 下一頁 修改項目以及設定時間的頁面 >>> DetailTableViewController
- 檢查代辦事項是否為空!!!提醒使用者要輸入!!!
Part.4
- UserDefault 存取與讀取資料
- 剛剛編輯的List順序,修改的代辦事項還有備註,關掉 App 重新開啟資料依然都在。
- 使用 Codable 把資料存成自己想要的形式
讀取時
寫入時
Part.5
- 設定日期、推播通知 (實機測試!!!)
- 在 AppDelegate 的 didFinishLaunchingWithOptions launchOptions 中加入
- 詢問使用者是否願意收到通知的操作
- 提醒推播通知
- 在 主程式碼 中加入
詳細可以看 推播操作可以看這篇~~~
Part.6
- 使用Switch 控制 Cell 顯示/隱藏
- 在這裡使用的是 heightForRowAt indexPath
- 設定 cell 的高度
- 注意!!! 在 switch 中變化時要加入 以下程式碼
- (我當初因為這個卡很久QAQ)
tableView.beginUpdates()tableView.endUpdates()