我的代码中有一个有趣的错误,即选择UITableViewCell
,触发segue,50抽头过程。此外,选择往往只发生在那些触摸同时拖下来的时候!
我已从单元格中删除了所有内容,以消除此行为是由内容屏蔽选择区域引起的。
我觉得根本原因是Storyboard问题而不是代码问题,因为我没有看到哪些代码可以触发此行为。
我想对解决这个问题的步骤有任何见解。
向prepareForSegue
添加断点,告诉我该方法永远不会被调用,尽管使用了正确的Identifier
。我还测试了来自ViewController
和UITableViewCell
本身的segues,但没有用。
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "productDetailSegue" {
if let destination = segue.destinationViewController as? ProductDetailVC {
if let productIndex = tableView.indexPathForSelectedRow?.row {
destination.productArray.append(tableView.productList[productIndex])
}
}
}
}
自定义UITableView
类:
class ProductTableView: UITableView, UITableViewDataSource, UITableViewDelegate {
var productList = [Product]()
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return productList.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let product = self.productList[indexPath.row]
let cell = tableView.dequeueReusableCellWithIdentifier("ProductCell") as? ProductCell
cell.picRequest?.cancel()
cell.configureCell(product)
return cell
}
}