prepare(对于segue:sender :)比ibaction按钮更快

时间:2017-02-19 16:18:15

标签: ios swift

我的问题是,我对代码一般都是新手,并且不明白为什么我的变量值太晚刷新了。

在App中,视图更改为SecondViewController,控制台打印我在表中选择的行。但是SegueVar并没有包含我希望给他带来的功能的价值,当我点击我放在桌子上的单元格上的按钮时。

var uebergabe = String()

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

    if segue.identifier == "vonSchuljahrzuFach" {

        let nextVC: SecondViewController = segue.destination as! SecondViewController

        nextVC.SegueVar.append(uebergabe) // Übergabe des ausgewählten Schuljahres ergänzen

    }  
}

@IBAction func testButton(_ sender: UIButton) {

    self.uebergabe = self.meineSchuljahre[sender.tag]
    self.meineSchuljahre[0] = self.uebergabe
    print(self.meineSchuljahre[0], "buttonfunktion")

}

1 个答案:

答案 0 :(得分:0)

从您的代码中,我不明白为什么视图会更改为第二个视图(因此,我假设您在故事板中设置了segue触发器。)

您可以尝试从故事板中删除该segue触发器,然后从IBAction手动调用performSegue(withIdentifier:, sender:)

另外,请确保

  • 您的segue具有正确的标识符(如果您在属性检查器的文本框中输入后没有按Enter键,则有时不会设置标识符。)
  • 您的if-closure正在prepare(forSegue:, sender:)中执行(通过在let nextVC: SecondViewController = ...之前设置断点。
  • 两个标识符(在故事板和代码中)都完全相同。标识符是大小写的。

如果未执行if-closure,则问题可能是segue.identifier未正确设置。