我有一个带有很多(36)按钮的视图控制器,我希望这些按钮中的每一个都根据程序中先前设置的变量转换到特定的视图控制器。换句话说,根据发送到包含按钮的viewcontroller的变量,任何按钮都可能会转到15个不同的视图控制器......
如果我点击并将每个按钮拖动到每个viewcontroller,我想我可以做这个工作......但它看起来很傻和乱。
我尝试过这样的事情:
{{1}}
但这只有在我点击并将故事板中的按钮拖到" AViewController"时才有效。
感谢任何帮助,谢谢!
答案 0 :(得分:3)
为此,您可以从SourceViewController
到DestinationViewController
而不是从Button
到Controller
制作segue,然后在按钮操作中调用perfromSegue
然后在sender
调用中将按钮引用传递为perfromSegue
。
@IBAction func buttonAction(_ sender: UIButton) {
self.performSegue(withIdentifier: "segueIdentifier", sender: sender)
}
现在prepareForSegue
将发件人转发给UIButton
并根据它设置标题。
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if variable == "Whatever" {
let send = segue.destination as! AViewController
if let button = sender as? UIButton {
send.variablesent = button.titleLabel?.text ?? "Default value"
}
}
}