如何使用UITableViewCell的accessoryButton作为Popover的锚点

时间:2017-12-25 11:49:16

标签: ios swift uitableview uiviewcontroller uipopover

我尝试使用UITableViewCell的accessoryButton作为Popover的锚点,但无法使用故事板连接它。我以编程方式尝试使用accessoryButtonTappedForRowWith函数,这也没有用。我怎么连接它?

1 个答案:

答案 0 :(得分:1)

如果您的班级是UITableViewController的子类,请使用:

override func tableView(_ tableView: UITableView, accessoryButtonTappedForRowWith indexPath: IndexPath) {
    print(indexPath.row)
}

检查示例代码:

class ViewController: UITableViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

    }

    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
        cell.textLabel?.text = "\(indexPath.row)"

        cell.accessoryType = UITableViewCellAccessoryType.detailButton
        return cell
    }

    override func tableView(_ tableView: UITableView, accessoryButtonTappedForRowWith indexPath: IndexPath) {
        print(indexPath.row)
    }

    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 10
    }
}

如果它是UIViewController的子类,那么在该方法之前你不需要override所以它将是:

func tableView(_ tableView: UITableView, accessoryButtonTappedForRowWith indexPath: IndexPath) {
    print(indexPath.row)
}

在这种情况下,请不要忘记将您的表格视图的UITableViewDataSourceUITableViewDelegateViewController联系起来。

查看example了解详情。