Advertisement
Guest User

Untitled

a guest
Nov 18th, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.22 KB | None | 0 0
  1. var savedLanguage1 = [PickedLanguage1]()
  2.  
  3. import Foundation
  4.  
  5. struct PickedLanguage1: Codable {
  6. var pickedLang1: String = "pickedLanguage1"
  7.  
  8. static let DocumentsDirectory = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
  9. static let ArchiveURL = DocumentsDirectory.appendingPathComponent("picked1").appendingPathExtension("plist")
  10.  
  11. static func picked1loadFromFile() -> [PickedLanguage1]? {
  12. print( ArchiveURL )
  13. guard let codedlang1 = try? Data(contentsOf: ArchiveURL) else {return nil}
  14. let decoder = PropertyListDecoder()
  15. return try? decoder.decode(Array<PickedLanguage1>.self, from: codedlang1)
  16. }
  17.  
  18. static func picked1saveToFile(lang1: [PickedLanguage1]) {
  19. let encoder = PropertyListEncoder()
  20. let codedlang1 = try? encoder.encode(lang1)
  21. try? codedlang1?.write(to: ArchiveURL, options: .noFileProtection)
  22. }
  23.  
  24.  
  25.  
  26. }
  27.  
  28. override func viewDidLoad() {
  29. super.viewDidLoad()
  30.  
  31.  
  32. if let savedVocab = PropertyKeys.loadFromFile() {
  33. vocabulary = savedVocab
  34. } else {
  35. vocabulary = []
  36. }
  37.  
  38. if let savedLang1 = PickedLanguage1.picked1loadFromFile() {
  39. savedLanguage1 = savedLang1
  40. print("Something is saved")
  41. } else {
  42. savedLanguage1 = []
  43. print("There is nothing saved")
  44. }
  45.  
  46. languageTextField.text = savedLanguage1[0]
  47.  
  48. languages = ["English", "Norwegian", "German", "Spanish", "Welsh", "Swedish", "French"]
  49.  
  50. languages2 = ["Greek", "Norwegian", "German", "Spanish", "Welsh", "Swedish", "French"]
  51.  
  52. createLanguagePicker()
  53. createLanguage2Picker()
  54. createToolsbar()
  55. }
  56.  
  57. var languages: [String] = [String]()
  58. var selectedLanguage: String?
  59. var languages2: [String] = [String]()
  60. var selectedLanguage2: String?
  61.  
  62.  
  63. func createLanguagePicker() {
  64. let languagePicker = UIPickerView()
  65. languagePicker.delegate = self
  66. languagePicker.dataSource = self
  67.  
  68. languageTextField.inputView = languagePicker
  69. }
  70.  
  71. func createLanguage2Picker() {
  72. let language2Picker = UIPickerView()
  73. language2Picker.delegate = self
  74. language2Picker.dataSource = self
  75.  
  76. language2TextField.inputView = language2Picker
  77. }
  78.  
  79. func createToolsbar() {
  80. let toolbar = UIToolbar()
  81. toolbar.sizeToFit()
  82.  
  83. let doneButton = UIBarButtonItem(title: "Done", style: .plain, target: self, action: #selector(VocabTableViewController.dismissKeyboard))
  84.  
  85. toolbar.setItems([doneButton], animated: false)
  86. toolbar.isUserInteractionEnabled = true
  87.  
  88. languageTextField.inputAccessoryView = toolbar
  89.  
  90. }
  91.  
  92. @objc func dismissKeyboard() {
  93. // if self.vocabulary.isEmpty == false { //Finising touches
  94. view.endEditing(true)
  95. let dialogMessage = UIAlertController(title: "Confirm", message: "Changing language will delete all existing vocabulary. \n Are you sure?", preferredStyle: .alert)
  96.  
  97.  
  98. let accept = UIAlertAction(title: "Accept", style: .default, handler: { (action) -> Void in
  99. print("Accept button tapped")
  100. self.savedLanguage1.removeAll()
  101. self.languageTextField.text = self.selectedLanguage
  102. PickedLanguage1.picked1saveToFile(lang1: self.savedLanguage1)
  103. var p1 = PickedLanguage1()
  104. p1.pickedLang1 = self.selectedLanguage!
  105. self.savedLanguage1.append(p1)
  106. self.vocabulary.removeAll()
  107. PropertyKeys.saveToFile(vocabs: self.vocabulary)
  108. self.tableView.reloadData()
  109. })
  110.  
  111. let cancel = UIAlertAction(title: "Cancel", style: .cancel) { (action) -> Void in
  112. print("Cancel button tapped")
  113. }
  114.  
  115. dialogMessage.addAction(accept)
  116. dialogMessage.addAction(cancel)
  117.  
  118. // Present dialog message to user
  119. self.present(dialogMessage, animated: true, completion: nil)
  120. }
  121.  
  122. func numberOfComponents(in pickerView: UIPickerView) -> Int {
  123. return 1
  124. }
  125.  
  126. func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
  127.  
  128. return languages.count
  129. }
  130.  
  131. func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
  132. return languages[row]
  133. }
  134.  
  135. func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
  136. selectedLanguage = languages[row]
  137.  
  138. // languageTextField.text = selectedLanguage
  139. // vocabulary.removeAll()
  140. // PropertyKeys.saveToFile(vocabs: vocabulary)
  141. // tableView.reloadData()
  142. }
  143. func updateLang1(with pickedLang1saved: PickedLanguage1) {
  144. languageTextField.text = pickedLang1saved.pickedLang1
  145. }
  146.  
  147.  
  148.  
  149. @IBAction func selectLanguage(_ sender: Any) {
  150.  
  151. }
  152.  
  153. @IBOutlet weak var languageTextField: UITextField!
  154. @IBOutlet weak var language2TextField: UITextField!
  155.  
  156. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement