UITextField在viewDidAppear之后不显示文本

时间:2018-10-05 08:38:48

标签: ios swift swift3

我正在尝试在加载视图时填写表格。我是通过在viewDidLoad()中设置属性来实现的。

我有几个按预期方式工作的字段,例如UIButtonUILabel元素。但是,我还有一个自定义构建类AITextField: UITextField,该类不显示我正在设置的文本:

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

据我所知,该属性在viewWillAppear()的末尾仍然存在,但是在viewDidAppear()的开始处设置为空。

我没有看到AITextField类中的任何代码可以随时将“文本”值重置为空。

任何关于寻找位置的提示将不胜感激。这两个功能都非常简单:

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

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

1 个答案:

答案 0 :(得分:-2)

解决方案是包装:

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