我的问题: 我想在表视图单元格中对两个不同的目标执行segue。一种是通过单击didSelectRowAt处理的单元格来定向目标“ A”,另一种是通过单击该单元格内的按钮(例如,labelName)定向到目标“ B”。
对于目标“ B”,我尝试使用(btn.addTarget),但是它无法添加参数,因此目标视图控制器不知道单击了哪个单元格。
有什么建议吗?
答案 0 :(得分:0)
您可以使用button.tag并将每个按钮的标签分配给indexpath.row
button.tag = indexPath.row
button.addTarget(self, action: "btnClick:", forControlEvents: UIControlEvents.TouchUpInside)
func btnClick(sender:UIButton) {
let buttonRow = sender.tag
}
快速4:
button.addTarget(self, action: #selector(händlerButtonTapped), for: .touchUpInside)
@objc func händlerButtonTapped(sender:UIButton) {
let buttonRow = sender.tag
}
答案 1 :(得分:0)
您可以使用此方法在btnClick函数中获取所选TableviewCell的indexPath。
let index = self.tableview.indexPathForSelectedRow
现在通过执行此操作可以解决您提到的问题。
destinatin视图控制器不知道单击了哪个单元格
答案 2 :(得分:0)
这是我的cellForRowAt:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! contentTableViewCell
let content: contentModel
content = contentList[indexPath.row]
contentViewController().getUserProfilePic(userID:content.userID!)
cell.detailLabelName.text = content.name
cell.detailLabelTime.text = content.time
cell.detailTextViewContent.text = content.content
if UserDefaults.standard.data(forKey:content.userID!) != nil {
cell.detailImageSelfie.image = UIImage(data:UserDefaults.standard.data(forKey:content.userID!)!)
} else {
cell.detailImageSelfie.image = #imageLiteral(resourceName: "defaultIcon")
}
return cell
}