Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何从另一个ViewController(Swift)访问UITextField中的文本?_Ios_Swift_Uitextfield - Fatal编程技术网

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

Ios 如何从另一个ViewController(Swift)访问UITextField中的文本?,ios,swift,uitextfield,Ios,Swift,Uitextfield,我在一个ViewController上有一个UITextField,我希望能够在第二个ViewController上有一个标签=无论用户输入什么 但是,我在尝试执行此操作时出错。我知道斯威夫特不使用导入,所以我不知道该怎么办 // First View Controller @IBOutlet weak var textOne: UITextField! // Second View Controller @IBOutlet weak var theResult: UILabel

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

但是,我在尝试执行此操作时出错。我知道斯威夫特不使用导入,所以我不知道该怎么办

// First View Controller

 @IBOutlet weak var textOne: UITextField!

// Second View Controller

    @IBOutlet weak var theResult: UILabel!

theResult.text = textOne.text

错误:未解析标识符

您需要将对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()
}

您已经完成了

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

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

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

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

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!

这个答案比我的好。。。用这个+1给你,伙计