访问此[图片]:https://media.giphy.com/media/13jWe2R65tiDrW/giphy.gif
Storyboard using segues Storyboard Screenshot
ViewController File
导入UIKit
class ViewController:UIViewController,UITextFieldDelegate {
@IBOutlet var trainNumberTextField : UITextField!
@IBOutlet var train2 : UITextField!
var stringVal : String!
var stringVal2 : String!
override func viewDidLoad() {
super.viewDidLoad()
trainNumberTextField.delegate = self
train2.delegate = self
trainNumberTextField.tag = 1
trainNumberTextField.text = stringVal
train2.text = stringVal2
train2.tag = 2
}
func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
if textField.tag == 1 {
performSegue(withIdentifier: "text2table", sender: self)
}
if textField.tag == 2 {
performSegue(withIdentifier: "text2table2", sender: self)
}
return false
}
}
Second View Controller :
override func tableView(_ tableView:UITableView,didSelectRowAt indexPath:IndexPath){
let indexpath = tableView.indexPathForSelectedRow
let currentcell = tableView.cellForRow(at: indexpath!)!
print(currentcell.textLabel!.text!)
textOneValue = currentcell.textLabel!.text!
let index = textOneValue.index(textOneValue.startIndex, offsetBy: 5)
finalString = textOneValue.substring(to: index)
performSegue(withIdentifier: "table2text", sender: self)
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "table2text"{
// =========== Destination view contorller name ===========
let viewcontorller = segue.destination as! ViewController
viewcontorller.stringVal = finalString
}
输入一个文本字段值,自动清除以前输入的文本字段值
1 回答
当你回到原点viewController时,最好用"popViewController"方法替换"push" Segue .
使用数据一致性策略也很好 .
原因:你应该考虑再次调用viewController 's lifecycle. When you push back to the origin viewController, using 333561 Segue makes the origin viewController' s "viewDidLoad"方法 . 然后将未选择的文本字段的值(stringVal2)重置为nil . 所以没有保存 .