swift2 单击UITableViewCell时执行操作

vc6uscn9  于 2022-11-23  发布在  Swift
关注(0)|答案(3)|浏览(306)

我正在为Apple TV制作一个tvOS应用程序,但我的UITableView有一些问题。当我点击UITableViewCell时,没有任何React。我正在使用targetForAction,但它似乎不工作。
这是我的代码:

override func viewDidLoad() {
    super.viewDidLoad()

    self.tableView.dataSource = self
    self.tableView.delegate = self
}

let allData = ["Los Angeles","New York","San Fransisco"]

@IBOutlet weak var tableView: UITableView!

func numberOfSectionsInTableView(tableView: UITableView) -> Int {
    return 1
}

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return allData.count
}

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = UITableViewCell(style: .Default, reuseIdentifier: nil)
    cell.textLabel?.text = "\(allData[indexPath.row])"
    cell.targetForAction("buttonClicked:", withSender: self)
    return cell
}

func buttonClicked(sender:AnyObject) {
    print("button clicked!")
}
r7knjye2

r7knjye21#

我找到了解决方案。我必须添加以下函数:

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    print("selected cell \(indexPath.row)")
}
bmvo0sr5

bmvo0sr52#

“雨燕5号"

func tableView(_ tableView: UITableView, didSelectRowAtindexPath indexPath: IndexPath) {
    print(indexPath.row)
}
8nuwlpux

8nuwlpux3#

请使用UITableView委派方法。

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {

}

相关问题