将参数传递给自定义UITableViewCell

时间:2014-11-16 00:40:28

标签: ios oop uitableview swift

我在TableViewController

中注册Nib中的自定义单元格
tableView.registerNib(UINib(nibName: "CustomCell", bundle: nil), forCellReuseIdentifier: "Cell")

但我的CustomCell有IBAction方法,需要访问tableView本身和fetchedResultsController。如何以干净的方式将这些参数传递给CustomCell?

将这些内容设置为:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) { 
   return tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as UITableViewCell 
}

对我来说似乎不太干净。?

2 个答案:

答案 0 :(得分:2)

单元格真的不应该对表视图或fetchedResultsController有所了解。一种方法是在cellForRowAtIndexPath中添加您的操作,并使控制器成为目标。

另一种选择是在自定义单元类中使用操作方法,并让它们调用您在单元类中创建的委托协议方法。让控制器将自己设置为cellForRowAtIndexPath中的委托。

答案 1 :(得分:0)

您可以选择负责自定义单元格IBAction示例的类

IBAction Func enterKeyButton (sender: AnyObject) {
    println(sender)
}

并在tableview中实现该方法,这就是原因medot Custom Cell

的方式
func tableView (tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) {
    let cell = tableView.dequeueReusableCellWithIdentifier ("Cell", forIndexPath: indexPath) as UITableViewCell

    cell.enterKeyButton ("hello")

    return cell
}

我希望我能帮到你!