我有一个按钮,点击后执行序列,在此过程中,我与发送者一起发送UIButton的标签
@IBAction func nextBtn(_ sender: UIButton) {
performSegue(withIdentifier: "more", sender: sender.tag)
}
在准备任务中,我尝试使用此标签,但显然我做错了
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "more" {
if let navigationVC = segue.destination as? UINavigationController, let openPDF = navigationVC.topViewController as? Morepage {
let senderTag = (sender as? UIButton)?.tag
if senderTag == 1 {
print(123)
} else if senderTag == 2 {
print(123)
}
}
}
}
senderTag
显示为无或为零。您能帮我在准备任务中正确使用sender.tag吗?
非常感谢
答案 0 :(得分:0)
您可以按照以下方式检查按钮标签。 sender:
将是sender
而不是sender.tag
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "more" {
if let navigationVC = segue.destination as? UINavigationController, let openPDF = navigationVC.topViewController as? Morepage {
if yourButton.tag == 1 {
print(123)
} else if yourButton.tag == 2 {
print(123)
}
}
}
}
OR
if sender.tag == 1 {
print("Button 1 is pressed")
}
答案 1 :(得分:0)
senderTag显示为none或nil。
问题在于您编写nextBtn
函数的方式。
不要将sender.tag
指定为performSegue
的传入参数,但发送方对象本身如下:
@IBAction func nextBtn(_ sender: UIButton) {
performSegue(withIdentifier: "more", sender: sender)
}
在prepare
函数中,您将收到此对象并提取其tag属性:按钮本身。