如何在嵌套在分段控件中的UITableView上实现“ didSelectRow”?

问题描述 投票:-1回答:1

我正在尝试在嵌套在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功能数据

swift firebase cocoa-touch uikit uisegmentedcontrol
1个回答
0
投票

这里有几件事。如果在段控件中更改段,则不会调用选择行吗。您可能需要在值更改的观察者上添加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
       }
}

希望这行得通。

© www.soinside.com 2019 - 2024. All rights reserved.