如何从UITableViewDataSource设置UITableViewCell的委托?

时间:2016-10-19 00:52:10

标签: ios swift uitableview delegates datasource

在我的UITableViewController中,我为DataSource设置了一个外部类。如下

class HomeViewDataSource: NSObject, UITableViewDataSource {

  func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
      let cell = tableView.dequeueReusableCellWithIdentifier(myCellIdentifier, forIndexPath: indexPath)
      cell.delegate = //Should I set this to the view controller?
      return cell
  }
}

正如您所看到的,我有一个可重用的单元格,我想为其设置委托。在单元格中,我有一个触发UITableViewController上的事件的按钮。现在,我已将单元格的委托设置为我的UITableViewController,以便它可以执行网络调用。我不相信我是以正确的MVC格式这样做的。

UITableViewController中的网络调用使用UITableViewDataSource中数组的属性。

有什么更好的方法可以做到这一点?

1 个答案:

答案 0 :(得分:0)

我有另一个想到这个,并决定尝试使用一个闭包。 我就是这样做的。

<div class="modal" id="exibirPais" data-backdrop="static">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
                <h4 class="modal-title" id="myModalLabel">
                    <span class="glyphicon glyphicon-search"></span>
                    <label class="control-label">Exibir</label>
                </h4>
            </div>
            <div class="modal-body">

                @Html.Partial()

            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-danger">Fechar</button>
            </div>
        </div>
    </div>
</div>

并在UITableViewDataSource

//MyCellClass: UITableViewCell

@IBAction func buttonPressed(sender:UIButton) {
  buttonNetworkCall?(self)
}