我试图将测试变量传递给目标控制器,但测试不成功 .
我的表演在这里完成:
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
programKeySegue = programKeys[indexPath.section]
self.performSegue(withIdentifier: "segueSelectedProgram", sender: self)
}
我准备好了:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "segueSelectedProgam" {
let selectedProgramVC = segue.destination as! SelectedProgramTableViewController
selectedProgramVC.programKey = "test" //programKeySegue
}
}
并在目标控制器中:
var programKey: String?
但是当我在viewDidLoad中打印(programKey)时,'nil'被打印到控制台 . 我之前使用过这种方法,它一直很好用 . 谁能告诉我我做错了什么?
我厌倦了从准备segue中删除覆盖,我尝试将自己附加到performsegue上,我尝试分配不同的变量来传递 . 没有任何效果 .
1 回答
如评论中所述,您的问题是由输入错误引起的 . 你可以通过不使用字符串比较来防止这种情况......
此外,您可以使用视图控制器名称作为故事板中的segue名称,然后...
et voila ...没有字符串!