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