我試圖從一個VC(稱爲第二個VC)到另一個VC(第一個VC)傳遞一個文本值。第二個VC中的信息將決定第一個VC中文本字段的文本值。我曾嘗試使用文檔來解決這個問題,但我必須變得非常困惑或者其他的東西已經起來 - 我無法弄清楚。Swift 3.0使用Segue在視圖控制器之間傳遞信息
在我secondVC:
func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if(segue.identifier == "saveSegue") {
let destinationVC = segue.destination as! firstVC
destinationVC.addressTextField.text = searchBar.text
}
}
@IBAction func savePressed(_ sender: Any) {
performSegue(withIdentifier: "saveSegue", sender: self)
}
segueing回firstVC後,文本框不與搜索欄的文字如預期填寫。 (searchBar文本不是零)根據我的理解,當在第二個VC中選擇按鈕並調用performSegue時,它還會調用prepareForSegue並設置addressTextField.text值,同時繼續回到第一個VC。我不確定我的邏輯是否正確。
你使用的是navigationController嗎?你確定你實際上是在尋找'firstVC',而不是從naviationController棧中彈出'secondVC'嗎?在'prepareForSegue'中放置一個斷點,看它是否實際被調用。 – toddg
我沒有使用導航控制器 - 只有情節串聯。我在prepareForSegue中設置了一個斷點,但它沒有被調用。這兩個有關係嗎? – Kevin
通常,當你要回退到前一個viewController時,你實際上並沒有執行一個segue。您要麼關閉模式視圖segue,要麼從viewController堆棧中彈出視圖(如果您使用的是navigationController)。傳回數據有點複雜,我建議的做法是與代表一起進行。好信息[這裏](https://medium.com/ios-os-x-development/pass-data-with-delegation-in-swift-86f6bc5d0894) – toddg