0
我遇到了UITableViewController的问题:表格视图显示出来,但是触摸单元格时每隔两秒只会调用didDeselectRowAt。有没有人看到这个代码的问题?UITableView的问题:动作只能每隔一秒执行一次
import UIKit
import MediaPlayer
class LibraryTableViewController: UITableViewController{
let mediaItems = MPMediaQuery.songs().items
override func viewDidLoad() {
super.viewDidLoad()
self.tableView.register(UITableViewCell.self, forCellReuseIdentifier: "cell")
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return mediaItems!.count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
cell.textLabel?.text = mediaItems?[indexPath.row].title
return cell
}
override func tableView(_ tableView: UITableView, didDeselectRowAt indexPath: IndexPath) {
print("table item selected")
OperationQueue.main.addOperation{
self.performSegue(withIdentifier: "showPlayer", sender: self)
}
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "showPlayer"{
let playerVC = segue.destination as! PlayerViewController
let indexPath = tableView.indexPathForSelectedRow!
playerVC.mediaItem = mediaItems?[indexPath.row]
}
}
}
非常感谢你!我一直盯着代码,但看不到这个小小的区别:-) –
原来,这是相当普遍的错误http://stackoverflow.com/questions/2106292/uitableview-didselectrowatindexpath-not-being-called-on-first -tap –
哈哈!笨拙的嘿嘿 – PerrierCitror