如何以编程方式从按钮中查找多个视图控制器

时间:2017-05-26 11:35:24

标签: swift button segue viewcontroller

我有一个带有很多(36)按钮的视图控制器,我希望这些按钮中的每一个都根据程序中先前设置的变量转换到特定的视图控制器。换句话说,根据发送到包含按钮的viewcontroller的变量,任何按钮都可能会转到15个不同的视图控制器......

如果我点击并将每个按钮拖动到每个viewcontroller,我想我可以做这个工作......但它看起来很傻和乱。

我尝试过这样的事情:

{{1}}

但这只有在我点击并将故事板中的按钮拖到" AViewController"时才有效。

感谢任何帮助,谢谢!

1 个答案:

答案 0 :(得分:3)

为此,您可以从SourceViewControllerDestinationViewController而不是从ButtonController制作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"
        }
    }
}