์ค๋์ todo๋ฅผ ์ถ๊ฐํ๋ AddViewController๋ฅผ ์ฝ 90%๊น์ง ๋๋์ต๋๋ค.
(๋๋จธ์ง๋ ์๋ฒ์ ์ฐ๊ฒฐ๋ค์ ํต์ ์ ํตํด ์ด๋ฃจ์ด์ง ์์ ์
๋๋ค.)
import UIKit
import DropDown
//todos.append([
// "todo" : "๋ฐฅ๋จน๊ธฐ",
// "start" : "2022-08-12",
// "end" : "2022-08-14",
// "reDays" : ["์"],
// "alarms" : false ,
// "important" : "์",
// "notes" : "๋ฐฅ๋จน๊ณ ์์๊ธฐ",
// "done" : false
//])//ํ
์คํธ ๋ฐ์ดํฐ ์ค์
protocol AddDelegate {
func AddTodo (_ controller: AddViewController, todos : Dictionary<String, Any>)
}
class AddViewController: UIViewController {
@IBOutlet var tdToDo: UITextField!
@IBOutlet var tfMemo: UITextField!
@IBOutlet var btnImportant: UIButton!
@IBOutlet var lblToday: UILabel!
var todo = Dictionary<String, Any>()
var alarmSet = false
var startDay : String? = nil
var endDay : String? = nil
var important : String? = nil
let menu = DropDown()
var reDays = [String]()
@IBOutlet var btnMonday: UIButton!
@IBOutlet var btnTuesday: UIButton!
@IBOutlet var btnWednesday: UIButton!
@IBOutlet var btnThursday: UIButton!
@IBOutlet var btnFriday: UIButton!
@IBOutlet var btnSaturday: UIButton!
@IBOutlet var btnSunday: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
menu.dataSource = [ "์", "์ค", "ํ" ]
menu.anchorView = btnImportant
menu.bottomOffset = CGPoint(x: 0, y: btnImportant.bounds.height)
menu.selectionAction = { index, title in
self.important = title
self.btnImportant.setTitle(title, for: UIControl.State.normal)
}
let today = Date()
let date = DateFormatter()
date.dateFormat = "yyyy.MM.dd"
lblToday.text = date.string(from: today)
date.dateFormat = "yyyy-MM-dd"
startDay = date.string(from: today)
endDay = date.string(from: today)
}
@IBAction func choiceStartDay(_ sender: UIDatePicker) {
let datePK = sender
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
startDay = dateFormatter.string(from: datePK.date)
}
@IBAction func choiceEndDay(_ sender: UIDatePicker) {
let datePK = sender
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
endDay = dateFormatter.string(from: datePK.date)
}
@IBAction func toggleAlarm(_ sender: UISwitch) {
alarmSet = sender.isOn
}
@IBAction func addTodo(_ sender: UIButton) {
if (checkInputValue(tdToDo.text) && checkInputValue(startDay)
&& checkInputValue(endDay)) {
todo["todo"] = tdToDo.text
todo["start"] = startDay
todo["end"] = endDay
todo["reDays"] = reDays
todo["alarms"] = alarmSet
todo["important"] = important
todo["notes"] = tfMemo.text
todo["done"] = false
//์๋ฒ์ ์ ์ก
print("data ํ์ธ : ", todo)
_ = navigationController?.popViewController(animated: true)
}else{
let alert = UIAlertController(title: "์
๋ ฅ๊ฐ ํ์ธ", message: "๋ด์ฉ์ ํ์ธํด ์ฃผ์ธ์", preferredStyle: UIAlertController.Style.alert)
let alertAction = UIAlertAction(title: "ํ์ธ", style: UIAlertAction.Style.cancel, handler: nil)
alert.addAction(alertAction)
self.present(alert, animated: true, completion: nil)
}
print("todo: " , todo)
}
@IBAction func cancelTodo(_ sender: Any) {
startDay = nil
endDay = nil
_ = navigationController?.popViewController(animated: true)
//todo ๋ชฉ๋ก์ผ๋ก ๊ฐ๊ธฐ
}
func checkInputValue(_ val : String?) -> Bool {
if (val == nil) || (val == "") {
return false
}
return true
}
@IBAction func btnChangeImportant(_ sender: UIButton) {
menu.show()
}
@IBAction func btnMon(_ sender: UIButton) {
if(reDays.contains("์")){
reDays = reDays.filter(){ $0 != "์"}
btnMonday.backgroundColor = .white
}else{
reDays.append("์")
}
}
@IBAction func btnTue(_ sender: UIButton) {
if(reDays.contains("ํ")){
reDays = reDays.filter(){ $0 != "ํ"}
btnTuesday.backgroundColor = .white
}else{
reDays.append("ํ")
}
}
@IBAction func btnWed(_ sender: UIButton) {
if(reDays.contains("์")){
reDays = reDays.filter(){ $0 != "์"}
btnWednesday.backgroundColor = .white
}else{
reDays.append("์")
}
}
@IBAction func btnThu(_ sender: UIButton) {
if(reDays.contains("๋ชฉ")){
reDays = reDays.filter(){ $0 != "๋ชฉ"}
btnThursday.backgroundColor = .white
}else{
reDays.append("๋ชฉ")
}
}
@IBAction func btnFri(_ sender: UIButton) {
if(reDays.contains("๊ธ")){
reDays = reDays.filter(){ $0 != "๊ธ"}
btnFriday.backgroundColor = .white
}else{
reDays.append("๊ธ")
}
}
@IBAction func btnSat(_ sender: UIButton) {
if(reDays.contains("ํ ")){
reDays = reDays.filter(){ $0 != "ํ "}
btnSaturday.backgroundColor = .white
}else{
reDays.append("ํ ")
}
}
@IBAction func btnSun(_ sender: UIButton) {
if(reDays.contains("์ผ")){
reDays = reDays.filter(){ $0 != "์ผ"}
btnSunday.backgroundColor = .white
}else{
reDays.append("์ผ")
}
}
}
๋ฐ๋ณตํ๋ ์์ผ์ค์ ํ๋ ๋ฒํผ์ก์ ์ด ์ค๋ณต๋๋๋ฐ ์ด๋ถ๋ถ์ ํด๊ฒฐํ ์์๋ ๋ฐฉ๋ฒ์ด ์์์ง๋ ๋ชจ๋ฅด๊ฐฐ์ต๋๋ค.