gpt4 book ai didi

ios - 设置文本字段的值时 swift 为零

转载 作者:行者123 更新时间:2023-12-01 18:48:22 25 4
gpt4 key购买 nike

这是我为 segue 代码做的准备

switch segue.identifier! {
case SegueIdentifiers.SecondUIViewController.rawValue:
print("\(SegueIdentifiers.SecondUIViewController.rawValue)")
let secondViewController = segue.destinationViewController as? SecondViewController

secondViewController!.resultTextField.text = "asdfasdf"
//break
default:
print("nothing sweetheart")
break
}

我在这条线上没有异常
secondViewController!.resultTextField.text = "asdfasdf"

为什么 ?文本字段已经存在

这是第二个 View Controller
import UIKit

class SecondViewController: UIViewController {

@IBOutlet weak var resultTextField: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
}
}

最佳答案

您的 outlets直到 viewDidLoad 才设置.之前都是nil .这就是为什么它们是可选的。因此,当您尝试从 prepareForSegue 访问它们时他们仍然是nil .

我建议您在 View Controller 中添加一个新属性,并将其设置为 prepareForSegue .稍后当您的outlets设置您可以更新您的文本字段。

// in prepareForSegue
let secondViewController = segue.destinationViewController as? SecondViewController
secondViewController!.resultText = "asdfasdf"

然后在您的 View Controller 中
class SecondViewController: UIViewController {
var resultText: String = "" {
didSet {
resultTextField?.text = text
}
}

@IBOutlet weak var resultTextField: UITextField! {
// Will be set once in viewDidLoad.
// Whenever that happens update text.
didSet {
resultTextField.text = resultText
}
}
}

现在您可以从 resultText 修改您的文本字段甚至在 outlets 之前的属性(property)已设置,并且由于 didSet,它们将在设置时更新属性(property)观察员。

关于ios - 设置文本字段的值时 swift 为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33131634/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com