现在我有 2 个按钮将文本字段数据从 vc1 转接到 vc2。我想让顶部按钮将文本字段中的任何内容转至 vc2。我希望底部按钮能够继续到下一个 vc。现在,两个按钮都将数据从文本字段延续到下一个 vc。
import UIKit
class ViewController: UIViewController {
@IBOutlet var textfield: UITextField!
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
guard let c2 = segue.destination as? twoViewController else {return}
c2.ss = textfield.text
}}
class twoViewController: UIViewController {
var ss: String!
@IBOutlet var datalbl: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
datalbl.text = ss
}}
最佳答案
有两种方法可以解决这个问题:
使用发送者并设置按钮的标签值
sender
在prepare(for:sender:)
是被按下的按钮,因此您可以为 2 个按钮设置唯一的标记值,然后检查:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
guard let c2 = segue.destination as? twoViewController else {return}
if (sender as? UIButton)?.tag == 1 {
c2.ss = textfield.text
}
}
设置segues的标识符并在prepare(for:sender:)
中检查它们
由于您有两个 Segue,请单击 Storyboard 中的 Segue 箭头,并在属性检查器中设置它们的标识符。属性检查器。您可以将顶部按钮的 Segue 标识符设置为 "sendTextField"
然后在prepare(for:sender:)
中检查这一点:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
guard let c2 = segue.destination as? twoViewController else {return}
if segue.identifier == "sendTextfield" {
c2.ss = textfield.text
}
}
关于ios - 准备segue时的Segue特定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49868634/