为 segue 做准备时的 Segue 特定值
Segue specific value in prepare for segue
现在我有 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
}}
您可以通过两种方式处理此问题:
使用发送器并设置按钮的标签值
prepare(for:sender:)
中的 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
}
}
设置 segue 的标识符并在 prepare(for:sender:)
中检查它们
因为你有两个 segue,点击 Storyboard 中的 segue 箭头并在 Attributes Inspector 中设置它们的标识符。您可以将顶部按钮的 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
}
}
现在我有 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
}}
您可以通过两种方式处理此问题:
使用发送器并设置按钮的标签值
prepare(for:sender:)
中的 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
}
}
设置 segue 的标识符并在 prepare(for:sender:)
因为你有两个 segue,点击 Storyboard 中的 segue 箭头并在 Attributes Inspector 中设置它们的标识符。您可以将顶部按钮的 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
}
}