Advertisement
Guest User

Schedule1TableViewCell.swift

a guest
Nov 20th, 2019
141
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.38 KB | None | 0 0
  1. //
  2. // Schedule1TableViewCell.swift
  3. // The School App - Try 2
  4. //
  5. // Created by Dylan McDonald on 9/7/19.
  6. // Copyright © 2019 Dylan McDonald. All rights reserved.
  7. //
  8.  
  9. import UIKit
  10.  
  11. var sch1tests:[String] = []
  12.  
  13. var sch1classes:[String] = []
  14.  
  15. var sch1duedates:[String] = []
  16.  
  17. class STableViewCell: UITableViewCell, UITextFieldDelegate {
  18.  
  19.  
  20. @IBOutlet weak var sch1classField: UITextField!
  21. @IBOutlet weak var sch1testField: UITextField!
  22. @IBOutlet weak var sch1dateTextField: UITextField!
  23.  
  24. @IBOutlet weak var doneButton: UIButton!
  25.  
  26. var indexPath: IndexPath?
  27.  
  28. @IBAction func sch1doneDatePickerPressed(_ sender: UIBarButtonItem) {
  29. sch1tests[indexPath!.row] = sch1testField.text!
  30. sch1classes[indexPath!.row] = sch1classField.text!
  31. sch1duedates[indexPath!.row] = sch1dateTextField.text!
  32. UserDefaults.standard.set(sch1tests, forKey: "syncicloud sch1testsData")
  33. UserDefaults.standard.set(sch1classes, forKey: "syncicloud sch1classesNameData")
  34. UserDefaults.standard.set(sch1duedates, forKey: "syncicloud sch1dueDatesData")
  35. sch1classField.resignFirstResponder()
  36. sch1testField.resignFirstResponder()
  37. sch1dateTextField.resignFirstResponder()
  38. }
  39.  
  40. @IBAction func doneButton(_ sender: Any) {
  41. if UserDefaults.standard.object(forKey: "syncicloud hapticsOnOff") as! String == "On" {
  42. UIImpactFeedbackGenerator(style: .light).impactOccurred()
  43. }
  44. sch1testField.text = ""
  45. sch1tests.insert(sch1testField.text!, at: sch1testField.tag)
  46. sch1tests.remove(at: sch1testField.tag + 1)
  47.  
  48. UserDefaults.standard.set(sch1tests, forKey: "syncicloud sch1testsData")
  49.  
  50.  
  51. sch1dateTextField.text = ""
  52. sch1duedates.insert(sch1dateTextField.text!, at: sch1dateTextField.tag)
  53. sch1duedates.remove(at: sch1testField.tag + 1)
  54. UserDefaults.standard.set(sch1duedates, forKey: "syncicloud sch1dueDatesData")
  55. UserDefaults.standard.synchronize()
  56.  
  57. }
  58.  
  59.  
  60.  
  61.  
  62.  
  63. func textFieldShouldReturn(_ textField: UITextField) -> Bool {
  64. sch1tests[indexPath!.row] = sch1testField.text!
  65. sch1classes[indexPath!.row] = sch1classField.text!
  66. sch1duedates[indexPath!.row] = sch1dateTextField.text!
  67. UserDefaults.standard.set(sch1tests, forKey: "syncicloud sch1testsData")
  68. UserDefaults.standard.set(sch1classes, forKey: "syncicloud sch1classesNameData")
  69. UserDefaults.standard.set(sch1duedates, forKey: "syncicloud sch1dueDatesData")
  70. sch1classField.resignFirstResponder()
  71. sch1testField.resignFirstResponder()
  72. sch1dateTextField.resignFirstResponder()
  73. return true
  74. }
  75.  
  76. func textFieldDidBeginEditing(_ textField: UITextField) {
  77.  
  78. }
  79.  
  80. func viewDidLoad() {
  81. self.sch1classField.delegate = self
  82. self.sch1testField.delegate = self
  83. self.sch1dateTextField.delegate = self
  84. sch1dateTextField.inputView = datePicker
  85. }
  86.  
  87. @objc func updatethemecolor(_ notification: Notification) {
  88. doneButton.backgroundColor = MyVariables.setColor
  89. }
  90.  
  91. override func awakeFromNib() {
  92. super.awakeFromNib()
  93. NotificationCenter.default.addObserver(self, selector: #selector(updatethemecolor(_:)), name: NSNotification.Name(rawValue: "updatethemecolor"), object: nil)
  94. sch1dateTextField.accessibilityLabel = "Test is On"
  95. sch1classField.accessibilityLabel = "Class"
  96. sch1testField.accessibilityLabel = "Test Details:"
  97. self.sch1classField.delegate = self
  98. self.sch1testField.delegate = self
  99. self.sch1dateTextField.delegate = self
  100. sch1dateTextField.inputView = datePicker
  101.  
  102. doneButton.backgroundColor = MyVariables.setColor
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109. // date picker setup
  110. let _:UIDatePicker = UIDatePicker()
  111.  
  112.  
  113. // datepicker toolbar setup
  114. let toolBar = UIToolbar()
  115. toolBar.barStyle = UIBarStyle.default
  116. toolBar.isTranslucent = true
  117. let space = UIBarButtonItem(barButtonSystemItem: UIBarButtonItem.SystemItem.flexibleSpace, target: nil, action: nil)
  118.  
  119. let doneButton = UIBarButtonItem(title: "Done", style: UIBarButtonItem.Style.done, target: self, action: #selector(sch1doneDatePickerPressed(_:)))
  120. // if you remove the space element, the "done" button will be left aligned
  121. // you can add more items if you want
  122. toolBar.setItems([space, doneButton], animated: false)
  123. toolBar.isUserInteractionEnabled = true
  124. toolBar.sizeToFit()
  125.  
  126. sch1dateTextField.inputAccessoryView = toolBar
  127.  
  128. }
  129.  
  130.  
  131.  
  132. override func setSelected(_ selected: Bool, animated: Bool) {
  133. super.setSelected(selected, animated: animated)
  134.  
  135. // Configure the view for the selected state
  136. }
  137.  
  138.  
  139.  
  140.  
  141.  
  142. lazy var datePicker: UIDatePicker = {
  143.  
  144. let picker = UIDatePicker()
  145.  
  146. picker.datePickerMode = .date
  147.  
  148. picker.addTarget(self, action: #selector(sch1datePickerChanged(_:)), for: .valueChanged)
  149.  
  150. return picker
  151. }()
  152.  
  153. lazy var dateFormatter: DateFormatter = {
  154.  
  155. let formatter = DateFormatter()
  156.  
  157. formatter.dateStyle = .full
  158.  
  159. formatter.timeStyle = .none
  160.  
  161. return formatter
  162. }()
  163.  
  164.  
  165. @objc func sch1datePickerChanged(_ sender: UIDatePicker) {
  166.  
  167. sch1dateTextField.text = dateFormatter.string(from: sender.date)
  168. }
  169.  
  170.  
  171.  
  172.  
  173.  
  174. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement