使用分段控件切换tableView

时间:2016-09-07 12:28:19

标签: ios swift uitableview uisegmentedcontrol

我正在尝试更改我的表格视图单元格,此处更改分段控件是我现在拥有的

internal func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    var returnValue = 0

    switch(segmentedC.selectedSegmentIndex)
    {
    case 0:
        returnValue = rest.count
        break
    case 1:
        returnValue = fullMenu.count
        break
    default:
        break

    }

    return returnValue
}

我的numberOfRowsInSectioncellForRowAtIndexPath

 func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    var cell = tableView.dequeueReusableCellWithIdentifier("food") as! restTableViewCell
    var cell2 = tableView.dequeueReusableCellWithIdentifier("fullM") as! fullmenuTableViewCell
    switch(segmentedC.selectedSegmentIndex)
    {
    case 0:
        let res: Rest!
        res = rest[indexPath.row]

        var img: UIImage?

        if let urls = foo.imageString{
            img = foodViewController.imageCache.objectForKey(urls) as? UIImage

        }
        dispatch_async(dispatch_get_main_queue()) {
            cell.setupViews(res)

        }

        break
    case 1:
            cell2.textLabel?.text = fullMenu[indexPath.row]
        break

    default:
        break

    }
    return cell
}

此外,我还有IBAction分段控件

@IBAction func seg(sender: AnyObject) {

    switch(segmentedC.selectedSegmentIndex)
    {
    case 0:
        tableView.reloadData()
        break

    case 1:
        tableView.reloadData()
        break
    default:
        break

    }

}

但是当我更改细分时,只有index 0中的一个细胞出现在index 1

1 个答案:

答案 0 :(得分:2)

在你的cellForRowAtIndexPath中,你总是返回你永远不会返回cell2的单元格。尝试在第二种情况下返回cell2。

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell = tableView.dequeueReusableCellWithIdentifier("food") as! restTableViewCell
var cell2 = tableView.dequeueReusableCellWithIdentifier("fullM") as! fullmenuTableViewCell
switch(segmentedC.selectedSegmentIndex)
{
case 0:
    let res: Rest!
    res = rest[indexPath.row]

    var img: UIImage?

    if let urls = foo.imageString{
        img = foodViewController.imageCache.objectForKey(urls) as? UIImage

    }
    dispatch_async(dispatch_get_main_queue()) {
        cell.setupViews(res)

    }

    break
case 1:
        cell2.textLabel?.text = fullMenu[indexPath.row]
        return cell2
    break

default:
    break

}
return cell
}