在没有 运行 按钮代码的情况下转到 SecondViewController

Segue to SecondViewController without running the button code

我在按钮方法中有这段代码。

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

该按钮已连接到第二个视图控制器(通过按住 ctrl 并拖动 segue)。当我发现这个问题时,我正处于调试模式。按下按钮时,程序的控制直接转到第二个视图控制器的 viewDidLoad() 方法,而不执行这行代码

DataforChat.arr2.append(enterMsg.text!)

我知道我们可以通过编程方式呈现第二个控制器。但是有没有任何解决方案,它首先 运行 在转移到另一个视图之前的代码。谢谢

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

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

你做得对,但没有得到 wat 可能是问题所在。但是,你可以尝试这样的事情

@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 
    }
}