如何将tableView.row与NSStoryboardSegue一起使用



我正在尝试将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)
}

相关内容

  • 没有找到相关文章

最新更新