在UITableViewCell内部处理按钮

Gre*_*g R 3 uitableview xamarin.ios ios

我似乎无法在自定义UITableViewCell内正确处理按钮.它是一个包含标签和按钮的单元格.我有以下代码:

var cell = tableView.DequeueReusableCell (cellKey) as ApptHistoryCell;
if (cell == null)
{
    cell = _container.Cell;
    cell.SelectionStyle = UITableViewCellSelectionStyle.None;
}

if (InfoClicked != null)
{
    cell.ActionButton.TouchUpInside += InfoClicked;
}
Run Code Online (Sandbox Code Playgroud)

InfoClicked是在创建单元格时循环传递的事件处理程序.当重新使用单元格时,这会导致空引用异常,因为(我认为)TouchUpInside正在尝试调用2个处理程序.旧的和新的,导致崩溃.如果我将事件处理程序放在cell == null if block中,则会显示错误的操作.

如何正确处理点击?

谢谢!

JP *_*sek 5

我处理自定义单元格内按钮的方式:

  • 我定义了一个IBAction,我连接到自定义单元格内的UIButton事件
  • 我为单元格定义委托和委托方法来处理按钮操作
  • IBAction调用该委托方法
  • 在cellAtRow中定义单元格时...我将tableViewController设置为委托.cell.delegate =自我;
  • 我在tableViewController中的委托方法中做了我想做的任何动作

说得通?