CellForRowAtIndexPath中的Swift if语句

时间:2015-10-15 07:34:50

标签: ios swift uitableview if-statement segue

我有一个tableView,我希望根据变量seguedDisplayMonth的设置显示不同的单元格。这是可能的,如果是这样,我可以得到任何关于如何做到这一点的提示吗?我尝试了以下但是它似乎没有效果。

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCellWithIdentifier("Income Cell", forIndexPath: indexPath)
    let income = myIncomeArray[indexPath.row]
    if seguedDisplayMonth == "All" {
        var text = "\(income.money) kr"
        cell.textLabel?.text = text
        cell.detailTextLabel?.text = income.name
    }
    return cell
}

我还想过,我可能需要在更改seguedDisplayMonth之后重新加载数据,而tableView会从不同的segueDROP DATABASE `123` 更改。

2 个答案:

答案 0 :(得分:0)

更改mcTableSwag.reloadData()后致电seguedDisplayMonth。 (可能在实际更改seguedDisplayMonth的函数中调用它。

或者您可以使用reloadVisibleCellsAtIndexPath(...)之类的方法重新加载certian单元格(我不确定它的名称是什么,但它应该在Apple UITableView文档中。

答案 1 :(得分:0)

我终于设法解决了这个问题。我将解释我是如何做到这一点的,因为任何人遇到同样的问题。

我实施了另一个array myVisibleIncomeArray

viewDidLoad()中,我拨打function,执行以下操作:

for inc in myIncomeArray {
        if self.monthLabel.text == "All" {
            self.myVisibleIncomeArray.append(inc)
            totalSum += inc.money
            print("Added to myVisible")
        }
    }

然后我reloadData()并使用myVisibleIncomeArray作为其他函数。

不确定它是否是最明智的解决方案,但它仍然是一个修复程序。