Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var savedLanguage1 = [PickedLanguage1]()
- import Foundation
- struct PickedLanguage1: Codable {
- var pickedLang1: String = "pickedLanguage1"
- static let DocumentsDirectory = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
- static let ArchiveURL = DocumentsDirectory.appendingPathComponent("picked1").appendingPathExtension("plist")
- static func picked1loadFromFile() -> [PickedLanguage1]? {
- print( ArchiveURL )
- guard let codedlang1 = try? Data(contentsOf: ArchiveURL) else {return nil}
- let decoder = PropertyListDecoder()
- return try? decoder.decode(Array<PickedLanguage1>.self, from: codedlang1)
- }
- static func picked1saveToFile(lang1: [PickedLanguage1]) {
- let encoder = PropertyListEncoder()
- let codedlang1 = try? encoder.encode(lang1)
- try? codedlang1?.write(to: ArchiveURL, options: .noFileProtection)
- }
- }
- override func viewDidLoad() {
- super.viewDidLoad()
- if let savedVocab = PropertyKeys.loadFromFile() {
- vocabulary = savedVocab
- } else {
- vocabulary = []
- }
- if let savedLang1 = PickedLanguage1.picked1loadFromFile() {
- savedLanguage1 = savedLang1
- print("Something is saved")
- } else {
- savedLanguage1 = []
- print("There is nothing saved")
- }
- languageTextField.text = savedLanguage1[0]
- languages = ["English", "Norwegian", "German", "Spanish", "Welsh", "Swedish", "French"]
- languages2 = ["Greek", "Norwegian", "German", "Spanish", "Welsh", "Swedish", "French"]
- createLanguagePicker()
- createLanguage2Picker()
- createToolsbar()
- }
- var languages: [String] = [String]()
- var selectedLanguage: String?
- var languages2: [String] = [String]()
- var selectedLanguage2: String?
- func createLanguagePicker() {
- let languagePicker = UIPickerView()
- languagePicker.delegate = self
- languagePicker.dataSource = self
- languageTextField.inputView = languagePicker
- }
- func createLanguage2Picker() {
- let language2Picker = UIPickerView()
- language2Picker.delegate = self
- language2Picker.dataSource = self
- language2TextField.inputView = language2Picker
- }
- func createToolsbar() {
- let toolbar = UIToolbar()
- toolbar.sizeToFit()
- let doneButton = UIBarButtonItem(title: "Done", style: .plain, target: self, action: #selector(VocabTableViewController.dismissKeyboard))
- toolbar.setItems([doneButton], animated: false)
- toolbar.isUserInteractionEnabled = true
- languageTextField.inputAccessoryView = toolbar
- }
- @objc func dismissKeyboard() {
- // if self.vocabulary.isEmpty == false { //Finising touches
- view.endEditing(true)
- let dialogMessage = UIAlertController(title: "Confirm", message: "Changing language will delete all existing vocabulary. \n Are you sure?", preferredStyle: .alert)
- let accept = UIAlertAction(title: "Accept", style: .default, handler: { (action) -> Void in
- print("Accept button tapped")
- self.savedLanguage1.removeAll()
- self.languageTextField.text = self.selectedLanguage
- PickedLanguage1.picked1saveToFile(lang1: self.savedLanguage1)
- var p1 = PickedLanguage1()
- p1.pickedLang1 = self.selectedLanguage!
- self.savedLanguage1.append(p1)
- self.vocabulary.removeAll()
- PropertyKeys.saveToFile(vocabs: self.vocabulary)
- self.tableView.reloadData()
- })
- let cancel = UIAlertAction(title: "Cancel", style: .cancel) { (action) -> Void in
- print("Cancel button tapped")
- }
- dialogMessage.addAction(accept)
- dialogMessage.addAction(cancel)
- // Present dialog message to user
- self.present(dialogMessage, animated: true, completion: nil)
- }
- func numberOfComponents(in pickerView: UIPickerView) -> Int {
- return 1
- }
- func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
- return languages.count
- }
- func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
- return languages[row]
- }
- func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
- selectedLanguage = languages[row]
- // languageTextField.text = selectedLanguage
- // vocabulary.removeAll()
- // PropertyKeys.saveToFile(vocabs: vocabulary)
- // tableView.reloadData()
- }
- func updateLang1(with pickedLang1saved: PickedLanguage1) {
- languageTextField.text = pickedLang1saved.pickedLang1
- }
- @IBAction func selectLanguage(_ sender: Any) {
- }
- @IBOutlet weak var languageTextField: UITextField!
- @IBOutlet weak var language2TextField: UITextField!
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement