告诉UITableView应该在Swift中显示哪些数据的最佳方式

时间:2018-05-30 17:45:07

标签: swift uitableview tableview

我是Swift的新手,我遵循了一些教程。 他们展示了如何使用UITableViewController来使用UITableView。 UITableView中显示的数据存储在UITableViewController内的Array中。 我很好。

基于此,我尝试用两个数组创建一个UITableView:

relations

我想使用2个数组来显示它们,具体取决于导航。例如,当您点击按钮时,我的永久消费" UITableView只显示'永久性'数据数据或者如果你点击"我所有的支出"你可以看到2个阵列的内容。

告诉UITableView应该显示哪些数据的最佳解决方案是什么?

谢谢。

2 个答案:

答案 0 :(得分:2)

你可以尝试

var isPermanent  = true

//

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

    return  isPermanent ? spendingsPermanent.count : spendingsTemporary.count 

}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

    let cell = areaSettTable.dequeueReusableCell(withIdentifier:CellIdentifier1) as! notifyTableViewCell

   if isPermanent {

  }
  else {

  }

    return cell
}

//

根据点击的按钮更改isPermanent,然后

tableView.reloadData()

注意您可以创建一个数组并为其分配当前数组并仅处理一个数组

答案 1 :(得分:0)

根据您的评论,最佳解决方案是使TableViewControllerSpending成为可以呈现所提供的Spending个对象数组的通用视图控制器。

class TableViewControllerSpending: UITableViewController, SpendingProtocol {
    var spendings = [Spending]()
}

基于spendings数组实现所有常规表视图方法。

在从两个按钮调用的某个适当的prepareSegue方法中,您可以访问TableViewControllerSpending作为目标控制器,然后根据点按的按钮,设置spendings属性为Spendings的两个主要列表之一。

通过这种方法,您的TableViewControllerSpending不知道有两个单独的数据列表。它只知道如何显示列表。