我正在尝试将NSTableView
中所选单元格的详细信息发送到另一个ViewController。
我有一个按钮:
@IBAction func detailButtonTapped(_ sender: Any) {
performSegue(withIdentifier: "toDetailsVC", sender: self)
}
和准备segue:
override func prepare(for segue: NSStoryboardSegue, sender: Any?) {
let row = self.tableView.row(for: sender as! NSButton)
if segue.identifier == "toDetailsVC" {
let destination = segue.destinationController as! DetailsVeiwController
destination.name = orders[row].name!
}
}
错误:
无法强制转换"Test"类型的值。ViewController’(0x100022b98(到"NSButton"(0x7fff8b59b260(。
当我在按钮内检查let row = self.tableView.row(for: sender as! NSButton)
时,它工作正常
我离这儿远吗?这哪里出了问题?
self
是视图控制器。你必须通过sender
按钮。我建议将sender
参数声明为具体类型
@IBAction func detailButtonTapped(_ sender: NSButton) {
performSegue(withIdentifier: "toDetailsVC", sender: sender)
}