在不运行按钮代码的情况下将Segue绑定到SecondViewController

时间:2018-07-30 06:03:04

标签: ios swift viewcontroller

按钮方法中有这段代码。

@IBAction func sendMsg(_ sender: UIButton) {
    DataforChat.arr2.append(enterMsg.text!)
}

按钮已连接到Second View Controller(通过ctrl-drag segue)。当我发现此问题时,我处于调试模式。按下按钮后,程序控制权直接转到第二个视图控制器的viewDidLoad()方法,而无需执行此代码行

DataforChat.arr2.append(enterMsg.text!)

我知道我们可以以编程方式展示第二个控制器。但是有什么解决方案,它可以先运行代码,然后再转移到另一个视图。谢谢。

2 个答案:

答案 0 :(得分:2)

您做对了,但可能不是问题所在。但是,您可以尝试类似

@IBAction func sendMsg(_ sender: UIButton) {

    DataforChat.arr2.append(enterMsg.text!)

    self.performSegue(withIdentifier: "NaviageToAnotherView", sender: sender)
}

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {

    if segue.identifier == "NaviageToAnotherView" {

        let swapVC = segue.destination as! HCSwapExerciseViewController

        // Do something here 
    }
}

答案 1 :(得分:1)

您应该在此方法结束时手动执行segue。请注意,您需要将segue从视图控制器连接到下一个视图控制器,而不是将按钮连接到下一个视图控制器

@IBAction func sendMsg(_ sender: UIButton) {
    DataforChat.arr2.append(enterMsg.text!)
    performSegue(withIdentifier: "Your segue identifier", sender: self)
}