簡體   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