如何以编程方式从一个按钮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”。

任何帮助表示赞赏,谢谢!

+1

使用带有标签的每个按钮。 &你可以用sender.tag标识每一个。 – Jack

对于您可以从赛格瑞到SourceViewController代替DestinationViewControllerButtonController,之后当您在按钮动作叫perfromSegue然后通过按钮引用作为senderperfromSegue通话。

@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" 
     } 
    } 
} 
+0

感谢您的回应!我试图弄清楚“segueIdentifier”应该是什么,以及如何从同一个按钮到多个视图控制器。它还没有点击我。任何方向?谢谢! – tfcamp

+0

我对这一切都很陌生,并没有足够的背景知识来理解你的答案。现在,我明白了你的答案。这是一个有用的指南,以连接我不明白的:https://*.com/a/31086536/7729572 – tfcamp

+0

欢迎队友:) –