从来没有从UITableViewCell调用prepareForSegue

时间:2015-12-03 20:26:57

标签: ios uitableview segue uistoryboardsegue

我的代码中有一个有趣的错误,即选择UITableViewCell,触发segue,50抽头过程。此外,选择往往只发生在那些触摸同时拖下来的时候!

我已从单元格中删除了所有内容,以消除此行为是由内容屏蔽选择区域引起的。

我觉得根本原因是Storyboard问题而不是代码问题,因为我没有看到哪些代码可以触发此行为。

我想对解决这个问题的步骤有任何见解。

prepareForSegue添加断点,告诉我该方法永远不会被调用,尽管使用了正确的Identifier。我还测试了来自ViewControllerUITableViewCell本身的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
    }
}

0 个答案:

没有答案