这是我的代码。我正在尝试执行segue。我有一个栏按钮项目以及一个表格,其中的行执行相同的序列。我想知道何时单击按钮以及何时单击特定行。
以下代码适用于按钮,但不适用于表格的行
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
activePlaceRow = indexPath.row
performSegue(withIdentifier: "toMap", sender: nil)
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "toMap"
{
let mapViewController = segue.destination as! ViewController
if let senderObject = sender
{
if (senderObject as! UIBarButtonItem).tag == 1
{
mapViewController.activePlaceRow = -2
}
else
{
mapViewController.activePlaceRow = activePlaceRow
}
}
}
}
最佳答案
只需将索引路径作为发送者
传递
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
performSegue(withIdentifier: "toMap", sender: indexPath)
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "toMap"
{
let mapViewController = segue.destination as! ViewController
if let buttonItem = sender as? UIBarButtonItem, buttomItem.tag == 1 {
mapViewController.activePlaceRow = -2
}
else if let indexPath = sender as? IndexPath {
mapViewController.activePlaceRow = indexPath.row
}
}
}
关于ios - Swift 准备 Segue : How to know If a button or a table row initiated Segue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44726988/