我是Swift的新手,我遵循了一些教程。 他们展示了如何使用UITableViewController来使用UITableView。 UITableView中显示的数据存储在UITableViewController内的Array中。 我很好。
基于此,我尝试用两个数组创建一个UITableView:
relations
我想使用2个数组来显示它们,具体取决于导航。例如,当您点击按钮时,我的永久消费" UITableView只显示'永久性'数据数据或者如果你点击"我所有的支出"你可以看到2个阵列的内容。
告诉UITableView应该显示哪些数据的最佳解决方案是什么?
谢谢。
答案 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
不知道有两个单独的数据列表。它只知道如何显示列表。