Swift:返回UItable视图委托和数据源

时间:2017-05-28 03:30:06

标签: ios swift uitableview

我有一个主视图控制器,它是表视图控制器。我有两个nib文件。其中一个nib包含一个表视图。我想将数据保存在该表视图中。我很困惑如何将UItable视图委托和数据源从nib文件返回到mainView。

这是我的代码:

var participationList : ["Apple","Dog","cat","Mat"]
 func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

    if  indexPath.row == 0
    {
      //first cell
    }
    if indexPath.row == 1
    {
      let cell : ActivitySecondTableViewCell = (NSBundle.mainBundle().loadNibNamed("ActivitySecondTableViewCell", owner: self, options: nil).first as? ActivitySecondTableViewCell)!
      cell.textLabel?.text = self.participationList[indexPath.row]

        return cell
    }

    let cell : ActivitySecondTableViewCell = (NSBundle.mainBundle().loadNibNamed("IncentiveActivitySecondTableViewCell", owner: self, options: nil).first as? IncentiveActivitySecondTableViewCell)!
    return cell
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

        return 2

}

这是我的主表View控制器,我从这里返回单元格。细胞清晰地显示在这里。 ActivitySecondTableViewCell里面包含Table视图。

这是我的笔尖:

class ActivitySecondTableViewCell: UITableViewCell,UITableViewDelegate {

    @IBOutlet weak var CellTableView: UITableView!
    override func awakeFromNib() {
        super.awakeFromNib()
        self.CellTableView.delegate = self
        // Initialization code
    }

    func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
        return "Required Health Activities for 2017"
    }
    func tableView(tableView: UITableView, willDisplayHeaderView view:UIView, forSection: Int) {
        if let headerTitle = view as? UITableViewHeaderFooterView {
            headerTitle.textLabel?.textColor = UIColor.redColor()
        }
    }
    override func setSelected(selected: Bool, animated: Bool) {
        super.setSelected(selected, animated: animated)

        // Configure the view for the selected state
    }
    }

我既看不到Activitysecond单元格中的标题也看不到数据。我怎么能实现它们?

2 个答案:

答案 0 :(得分:0)

确保你的第一个tableview中有超过2行,然后使用UITableViewDataSource继承secondTableView单元格并给出一些numberOfRows只是为了检查并返回cellForRowAt中的UITableViewCell并检查是否可以看到发生的事情。

答案 1 :(得分:0)

对于不同的笔尖,您可以使用

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {


if indexPath.row == 1
{
  let cell : ActivitySecondTableViewCell = (NSBundle.mainBundle().loadNibNamed("ActivitySecondTableViewCell", owner: self, options: nil).first as? ActivitySecondTableViewCell)!
  cell.textLabel?.text = self.participationList[indexPath.row]

    return cell
}
 else
{
   let cell : ActivitySecondTableViewCell = (NSBundle.mainBundle().loadNibNamed("IncentiveActivitySecondTableViewCell", owner: self, options: nil).first as? IncentiveActivitySecondTableViewCell)!
  return cell
}
}