如何在一个发件人中发送多个变量?

时间:2017-08-12 03:22:47

标签: swift variables uibutton sender

我尝试在一个发件人中发送多个变量,以便在Viewcontroller中显示它连接到名为menuENG的segue。我有五个按钮,每个按钮应该发送不同的信息,因为它是一个字典,每个按钮都是一个单词。但我想通过一个发件人这样做。我尝试了以下代码来实现它,但它无法正常工作。

p.s。:我试过制作一个数组但Xcode很疯狂。

@IBAction func abstractionENG(sender:UIButton) {
  return perfomanceWithIdentifier("menuENG",sender:nil)
}

1 个答案:

答案 0 :(得分:0)

谢谢大家通过这种方式解决问题>

class MainViewController: UIViewController {

override func viewDidLoad() {
    super.viewDidLoad()

}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()

}

/* The following functions containts a group of conditionals which will change the scene depending  of the IBAction selected */

@IBAction func abstractionENG(sender: UIButton) {
    let data = [DiccioModel.abstraction().nameEng,DiccioModel.abstraction().descriptionEng,DiccioModel.abstraction().linkEng]
    performSegueWithIdentifier("menuENG", sender: data)
}

@IBAction func webBrowserENG(sender: UIButton) {
    let data = [DiccioModel.webBrowser().nameEng,DiccioModel.webBrowser().descriptionEng,DiccioModel.webBrowser().linkEng]
    performSegueWithIdentifier("menuENG", sender: data)
}

@IBAction func latencyENG(sender: UIButton) {
    let data = [DiccioModel.latency().nameEng,DiccioModel.latency().descriptionEng,DiccioModel.latency().linkEng]
    performSegueWithIdentifier("menuENG", sender: data)
}

@IBAction func conditionalENG(sender: UIButton) {
    let data = [DiccioModel.conditional().nameEng,DiccioModel.conditional().descriptionEng,DiccioModel.conditional().linkEng]
    performSegueWithIdentifier("menuENG", sender: data)
}


@IBAction func operatingSystemENG(sender: UIButton) {
    let data = [DiccioModel.os().nameEng,DiccioModel.os().descriptionEng,DiccioModel.os().linkEng]
    performSegueWithIdentifier("menuENG", sender: data)
}

@IBAction func abstractionESP(sender: UIButton) {
    let data = [DiccioModel.abstraction().nameEsp,DiccioModel.abstraction().descriptionEsp,DiccioModel.abstraction().linkEsp]
    performSegueWithIdentifier("menuESP", sender: data)
}

@IBAction func webBrowserESP(sender: UIButton) {
    let data = [DiccioModel.webBrowser().nameEsp,DiccioModel.webBrowser().descriptionEsp,DiccioModel.webBrowser().linkEsp]
    performSegueWithIdentifier("menuESP", sender: data)
}

@IBAction func latencyESP(sender: UIButton) {
    let data = [DiccioModel.latency().nameEsp,DiccioModel.latency().descriptionEsp,DiccioModel.latency().linkEsp]
    performSegueWithIdentifier("menuESP", sender: data)
}

@IBAction func conditionalESP(sender: UIButton) {
    let data = [DiccioModel.conditional().nameEsp,DiccioModel.conditional().descriptionEsp,DiccioModel.conditional().linkEsp]
    performSegueWithIdentifier("menuESP", sender: data)
}


@IBAction func operatingSystemESP(sender: UIButton) {
    let data = [DiccioModel.os().nameEsp,DiccioModel.os().descriptionEsp,DiccioModel.os().linkEsp]
    performSegueWithIdentifier("menuESP", sender: data)
}


override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if(segue.identifier == "menuENG") || (segue.identifier == "menuESP"){
        if let destinationViewController = segue.destinationViewController as? DefinitionViewController{
            if let data = sender as? Array<String>{
                destinationViewController.tittle = data[0]
                destinationViewController.def = data[1]
                destinationViewController.link = data[2]
            }
        }
    }



}

PS:注意此代码连接到DefinitionViewController(视图的控制器)和模型。 (项目由M.V.C方式制定)。

再次感谢大家的帮助。希望代码能帮助其他人。