我想在单个viewcontroller中使用两个tableview。但什么是最终的返回类型?

时间:2015-11-24 09:42:59

标签: ios iphone xcode swift uitableview

我想在单个viewcontroller中使用两个tableview。但最终的返回类型是什么?

这是我的代码

 func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    if(tableView == self.tableaudiodata){
        let cell:customcell = tableView.dequeueReusableCellWithIdentifier("customcell") as! customcell
        cell.audiolabel.text = recordings[indexPath.row].lastPathComponent
        return cell
    }
    if(tableView == self.tablehome){
        let cell:homecell = tableView.dequeueReusableCellWithIdentifier("homecell") as! homecell
        let dic = arrayofhomedata.objectAtIndex(indexPath.row)
        cell.homelbl.text = dic["key"] as! NSString as String
        print(arrayofhomedata.valueForKey("value"))
        return cell
    }
          What should be return here???}

3 个答案:

答案 0 :(得分:1)

您最好使用“tag”属性来指定从委托调用哪个tableView。使用以下命令在Xcode或代码中设置“tag”属性:

tableview.tag = 1
tableviewDetail.tag = 2

当您“重新加载”数据时,委托要求返回所选tableView的单元格的方法。

例如:

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

 if tableView.tag = 1 {
    //return your main Cell 
 } else {
    //return the other cell (dont use "2" here, because the delegate always needs to return a cell)
 }

答案 1 :(得分:0)

    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        if(tableView == self.tableaudiodata){
          let cell:customcell = tableView.dequeueReusableCellWithIdentifier("customcell") as! customcell
          cell.audiolabel.text = recordings[indexPath.row].lastPathComponent
         return cell
        }
        else if(tableView == self.tablehome){
          let cell:homecell = tableView.dequeueReusableCellWithIdentifier("homecell") as! homecell
          let dic = arrayofhomedata.objectAtIndex(indexPath.row)
          cell.homelbl.text = dic["key"] as! NSString as String
          print(arrayofhomedata.valueForKey("value"))
         return cell
        }
      }

答案 2 :(得分:0)

你应该为每个tableview使用不同的数据源(也许是委托?),从长远来看,这将使事情变得更加简单。

tableview1.datasource = MyNewDataSource()
tableview2.datasource = MyOtherDataSource()