繁体   English   中英

如何从另一个 ViewController (Swift) 访问 UITextField 中的文本?

[英]How do I access text in UITextField from another ViewController (Swift)?

我在一个 ViewController 上有一个 UITextField,我希望能够在第二个 ViewController 上有一个标签 = 无论用户输入什么。

但是,尝试执行此操作时出现错误。 我知道 Swift 不使用导入,所以我不知道该怎么做。

// First View Controller

 @IBOutlet weak var textOne: UITextField!

// Second View Controller

    @IBOutlet weak var theResult: UILabel!

theResult.text = textOne.text

错误:未解析的标识符

看起来您实际上只想访问 UITextField 中的文本,而不是字段本身。 因此,您应该使用prepareForSegue将文本从第一个 ViewController 发送到第二个 ViewController。

但在此之前,您必须设置 segue 的名称,以便 Swift 知道要发送哪些数据:

在此处输入图片说明

如您所见,我们将 segue 命名为segueTest

所以现在我们可以在 FirstViewController 中实现 prepareForSegue 方法并设置应该发送到第二个的数据。

override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) {
    if (segue.identifier == "segueTest") {
        var svc = segue!.destinationViewController as secondViewController;

        svc.theText = yourTextField.text

    }
}

要做到这一点,当然必须在 SecondViewController 中设置一个变量:

var theText:String!

您需要将 FirstViewController 实例的引用传递给 prepearForSegue 中的 SecondViewController 实例...

然后做这样的事情

//FirstViewController
@IBOutlet weak var textOne: UITextField!

func getTextOne () -> String? {
     return textOne.text
}

//SecondViewController
@IBOutlet weak var theResult: UILabel!
var firstViewControllerInstance: FirstViewController?

func showResult () {
     theResult.text = firstViewControllerInstance?.getTextOne()
}

你已经完成了

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM