2016-09-25 102 views
0

如果在表格视图单元格中点击标签,我想执行一个塞格带你到另一个页面。[UITableViewCell]类型的值没有成员'performSegueWithIdentifier'

我得到键入下列误差值的UITableViewCell]没有成员“performSegueWithIdentifier”

class IdeaCell: UITableViewCell { 

    override func awakeFromNib() { 
     super.awakeFromNib() 

     let tapUser = UITapGestureRecognizer(target: self, action: #selector(IdeaCell.goToUserPage(_:))) 
     tapUser.numberOfTapsRequired = 1 
     usernameLbl.addGestureRecognizer(tapUser) 
    } 

func goToUserPage(sender: UITapGestureRecognizer) { 
     self.performSegueWithIdentifier("goToTableFromOriginal", sender: nil) 
    } 
} 
+2

小区ISN”一个UIViewController,所以它不能执行一个segue。您应该使用协议让单元格调用视图控制器上的一个函数来进行委派,并且视图控制器函数可以执行这些细节: – Paulw11

+0

http://stackoverflow.com/a/22761617/4475605 – Adrian

回答

0

而不是试图敲击手势识别器添加到您的细胞,如果你实现了它会更简单和更清洁管理表视图的视图控制器中的table(_:didSelectRowAt:)方法(方法签名的Swift 3版本)。 (可能是一个表视图控制器?)

如果失败了,你需要创建一个名为类似TableViewCellDelegate的协议,其中包括一个didSelect(cell:UITableViewCell)方法(或沿着这些方向)。然后,您可以将委托属性添加到自定义表格视图单元格,并将该属性设置为cellForRow(at:)方法中的视图控制器。

然后在单元格中,您可以在单元的委托上调用您的didSelect(cell:UITableViewCell)

在视图控制器,你会使用indexPath(for cell: UITableViewCell)找出哪些细胞被窃听,并用它来决定采取抽头细胞什么样的行动(调用SEGUE,你的情况。)

相关问题