Как сохранить текст в UITextField?(Swift)

Заходишь в окно ввода данных заполняешь textField, но когда выходишь, данные пропадают, как их сохранить? Хочу, чтобы при выходе из этого окна, информация сохранялась:

введите сюда описание изображения

введите сюда описание изображения


Ответы (2 шт):

Автор решения: NSA-bot

Именно для этого Вам можно использовать UserDefaults, так как данные небольшие. Во методе viewDidLoad извлекайте данные из UserDefaults и вставляйте их в текстовые поля. Это чтобы при открытии экрана они появлялись в полях. А для сохранения данных, в @IBAction вашей кнопки "Сохранить" добавьте сохранение содержимого каждого поля в соотвествующий ему, текстовой UserDefaults.

→ Ссылка
Автор решения: Max Raskolnikov

Есть несколько вариантов для решения вашей задачи.

I ) Использовать хранилище UserDefaults. Простой пример кода:

import UIKit

class ViewController: UIViewController {

    // создаем хранилище UserDefaults:
    let userDef = UserDefaults.standard

    // аутлеты двух текстовых полей:
    @IBOutlet weak var text1: UITextField!
    @IBOutlet weak var text2: UITextField!

    //кнопка для записи сохранения в UserDefaults введенных в текстовые поля значений:
    @IBAction func saveButton(_ sender: Any) {
        userDef.setValue(text1.text, forKey: "t1")
        userDef.setValue(text2.text, forKey: "t2")  
    }


    override func viewDidLoad() {
        super.viewDidLoad()

        //при запуске приложения значения для текстовых полей берутся из UserDefaults:
        text1.text = userDef.string(forKey: "t1")
        text2.text = userDef.string(forKey: "t2")
    }
}

II ) Использовать Core Data - это не просто и не быстро :) Нужно долго тщательно изучать и реализовывать, в сети есть много мануалов и видео на эту тему. Core Data используют, если данных для хранения много.

III ) Использовать Realm - попроще и посовременнее (по мнению некоторых), но тоже нужно изучать... Realm используют, если данных для хранения много.

→ Ссылка