UITextField не отображает текст после viewDidAppear - PullRequest
0 голосов
/ 05 октября 2018

Я пытаюсь заполнить форму при загрузке просмотра.Я делаю это, устанавливая свойства в viewDidLoad().

У меня есть пара полей, которые работают, как и ожидалось, например, UIButton или UILabel элементы.Тем не менее, у меня также есть класс пользовательской сборки AITextField: UITextField, который не отображает текст, который я задаю:

override func viewDidLoad() {
    super.viewDidLoad() 
    textField.text = name 
}

Из того, что я вижу, свойство все еще присутствует в конце viewWillAppear(), но устанавливается пустым в начале viewDidAppear().

Я не вижу кода в классе AITextField, который бы сбрасывал значение 'text' в пустое значение в любой точке.

Будем благодарны за любые подсказки о том, где искать.Обе функции действительно просты:

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    print(textField.text)
}

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)        
    print(textField.text)
}

1 Ответ

0 голосов
/ 05 октября 2018

Решение было обернуть:

override func viewDidLoad() {
    super.viewDidLoad() 
    DispatchQueue.main.async {
        textField.text = name 
    }
}
...