我正在尝试在嵌套在2个分段的分段控件中的UITableview上实现“ didSelectRow”。
但是无法使其生效,我尝试了各种建议,但都没有奏效。
我将要求提供相同的参考。
预先感谢
我正在使用下面的代码,已更新为用于清楚了解类中正在发生什么的完整类
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
print("hello1.......")
let cell = tableView.dequeueReusableCell(withIdentifier: "MyCell", for: indexPath) as! MyWsPostCell
switch segmentControl.selectedSegmentIndex{
case 0:
print("hello2......")
cell.pending1 = pendingPost[indexPath.row]
cell.celltap.tag = indexPath.row
print(indexPath)
cell.celltap.target(forAction: #selector(todetailview(_:)), withSender: self)
break
case 1:
print("hello4")
cell.completed1 = completedPost[indexPath.row]
cell.celltap.tag = indexPath.row
cell.celltap.target(forAction: #selector(todetailview(_:)), withSender: self)
print(indexPath)
break
default:
break
}
在上面的代码中,celltap被定义为
@ IBOutlet弱变量单元格:UIView!
在引用表单元格的单元格类中
要调用的函数在下面
@objc func todetailview(_ sender: AnyObject) {
performSegue(withIdentifier: "myWtoDetail", sender: self)
}
还必须传递上述segue功能数据
这里有几件事。如果在段控件中更改段,则不会调用选择行吗。您可能需要在值更改的观察者上添加IBAction。如果要通过代码完成此操作,可以按以下步骤完成:在ViewController的viewDidLoad
方法中添加以下行
segmentControl.addTarget(self, action: "segmentedControlValueChanged:", forControlEvents:.TouchUpInside)
然后您可以实现选择器
func segmentedControlValueChanged(segment: UISegmentedControl) {
switch segment.selectedSegmentIndex{
case 0:
performSegue(withIdentifier: "myWtoDetail", sender: indexPath)
case 1:
performSegue(withIdentifier: "myWtoDetail", sender: indexPath)
default:
break
}
}
希望这行得通。