如何以编程方式从一个按钮seque到多个视图控制器
问题描述:
我有一个很多(36)按钮的视图控制器,我希望这些按钮中的每一个按照先前设置的变量延续到特定的视图控制器在节目中。换句话说,任何按钮都可能根据发送给包含按钮的视图控制器的变量,转到15个不同的视图控制器...如何以编程方式从一个按钮seque到多个视图控制器
我想我可以使这项工作,如果我点击并拖动每个按钮到每viewcontroller ...但它似乎愚蠢和凌乱。
我试图做这样的事情:如果
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if variable == "Whatever" {
let send = segue.destination as! AViewController
send.variablesent = (sender as! UIButton).title(for: .normal)!}
}
但这只是我的作品点击,并在故事板按钮拖动到“AViewController”。
任何帮助表示赞赏,谢谢!
答
对于您可以从赛格瑞到SourceViewController
代替DestinationViewController
从Button
到Controller
,之后当您在按钮动作叫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"
}
}
}
使用带有标签的每个按钮。 &你可以用sender.tag标识每一个。 – Jack