【问题标题】:How to programmatically seque to multiple view controllers from a button如何从一个按钮以编程方式对多个视图控制器进行排序
【发布时间】:2017-10-27 06:58:03
【问题描述】:

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

如果我单击每个按钮并将其拖动到每个视图控制器,我想我可以完成这项工作......但这看起来很愚蠢和混乱。

我试着做这样的事情:

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”时才有效。

感谢任何帮助,谢谢!

【问题讨论】:

  • 使用带有标签的每个按钮。 & 你可以用 sender.tag 来识别每个人。

标签: swift button segue viewcontroller


【解决方案1】:

为此,您可以从SourceViewControllerDestinationViewController 而不是从ButtonController,之后当您在按钮操作中调用perfromSegue 时,然后将按钮引用传递为@ 中的sender 987654328@电话。

@IBAction func buttonAction(_ sender: UIButton) {
    self.performSegue(withIdentifier: "segueIdentifier", sender: sender)
}

现在在 prepareForSegue 将 sender 转换为 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"
        }
    }
}

【讨论】:

  • 感谢您的回复!我试图弄清楚“segueIdentifier”应该是什么,以及如何从同一个按钮访问多个视图控制器。它还没有为我点击。有什么方向吗?谢谢!
  • 我是新手,没有足够的背景知识来理解你的答案。现在,我开始工作了,现在明白了你的答案。这是连接我不理解的内容的有用指南:stackoverflow.com/a/31086536/7729572
  • 欢迎朋友 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-06-23
  • 1970-01-01
  • 2016-08-19
  • 1970-01-01
  • 2020-09-04
  • 2018-07-12
  • 1970-01-01
相关资源
最近更新 更多