如何在 NSStoryboardSegue 中使用 tableView.row
How to use tableView.row with 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!
}
}
错误:
Could not cast value of type 'Test.ViewController' (0x100022b98) to 'NSButton' (0x7fff8b59b260).
当我检查按钮内部的 let row = self.tableView.row(for: sender as! NSButton)
时,它工作正常。
我离开这里了吗?这是哪里出错了?
self
是视图控制器。您必须传递按钮 sender
。我建议将 sender
参数声明为具体类型
@IBAction func detailButtonTapped(_ sender: NSButton) {
performSegue(withIdentifier: "toDetailsVC", sender: sender)
}
我正在尝试将 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!
}
}
错误:
Could not cast value of type 'Test.ViewController' (0x100022b98) to 'NSButton' (0x7fff8b59b260).
当我检查按钮内部的 let row = self.tableView.row(for: sender as! NSButton)
时,它工作正常。
我离开这里了吗?这是哪里出错了?
self
是视图控制器。您必须传递按钮 sender
。我建议将 sender
参数声明为具体类型
@IBAction func detailButtonTapped(_ sender: NSButton) {
performSegue(withIdentifier: "toDetailsVC", sender: sender)
}