我尝试使用UITableViewCell的accessoryButton
作为Popover的锚点,但无法使用故事板连接它。我以编程方式尝试使用accessoryButtonTappedForRowWith
函数,这也没有用。我怎么连接它?
答案 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)
}
在这种情况下,请不要忘记将您的表格视图的UITableViewDataSource
和UITableViewDelegate
与ViewController
联系起来。
查看example了解详情。