【发布时间】:2018-04-17 08:47:54
【问题描述】:
我想知道如何从我的表视图加载所选数据,例如选择段索引等于1,表视图将重新加载并且只会显示状态等于批准的数据。因为正如您从下面的代码中看到的那样,我已经加载了具有所有状态的所有数据:.例如,如果 segmentView.selectedSegmentIndex == 1 表将重新加载状态等于已批准的数据。我已经可以确定选定的索引。我想要的是如何从表视图中访问这些数据,我可以根据状态加载选定的数据
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
// Table view cells are reused and should be dequeued using a cell identifier.
let cellIdentifier = "ToDoListTableViewCell"
let cell = tableView.dequeueReusableCell(withIdentifier: cellIdentifier, for: indexPath) as! ToDoListTableViewCell
cell.delegate = self
// let toDoActionItem = fetchedResultsController.object(at: indexPath)
if let getTempDetails: [String : Any] = getAllDetail[indexPath.row] {
print("ang tanan data:" , getTempDetails)
if let str = getTempDetails["status"] as? [String: String] {
if let name = str["name"] {
if name == "ongoing" {
cell.toDoItemLabel.text = getTempDetails["name"] as? String
cell.statuslabel.backgroundColor = created
// cell.label.textColor = UIColor(red: 0.9294, green: 0.3333, blue: 0.1804, alpha: 1.0)
// cell.backgroundColor = created
}
else if name == "approved" {
cell.toDoItemLabel.text = getTempDetails["name"] as? String
cell.statuslabel.backgroundColor = done
cell.checkBoxButton.isSelected = true
}
else if name == "for approval" {
cell.toDoItemLabel.text = getTempDetails["name"] as? String
cell.statuslabel.backgroundColor = pending
}else if name == "near expiry" {
cell.toDoItemLabel.text = getTempDetails["name"] as? String
cell.statuslabel.backgroundColor = neardue
} else if name == "expired" {
cell.toDoItemLabel.text = getTempDetails["name"] as? String
cell.statuslabel.backgroundColor = expired
} else {
print("false")
cell.toDoItemLabel.text = "LOLS"
}
}
}
}
code for segment (in selecting segment)
func selectSegmentInSegmentView(segmentView: SMSegmentView) {
if segmentView.selectedSegmentIndex == 1 {
print("ang index nga emo ge click is one")
// let selectedSegment : SMSegment = segmentView.selectedSegment!
// self.userName = selectedSegment.label.text!
} else {
logic here
}
self.setUpTableView()
or could be self.tableView.reloadData()
}
【问题讨论】:
-
您的问题是仅过滤“已批准”/“过期”还是有关 TableView?我会使用“selectedDetailsArray”,它将根据 segmentedControl 选择过滤
getAllDetail,并仅将这个用于数据源(numberOfRows、cellForRow 等) -
我想要的是例如 segmentView.selectedSegmentIndex == 1 表将加载状态等于批准的数据。
-
您在分段控制中是否有 5 个分段,分别命名为正在进行、已批准、待批准、即将到期和已过期?
-
是的索引等于状态数
-
@DurnKurvirck 你能解释一下代码吗?来参加昨天的聊天,我们可以在那里讨论
标签: ios swift uitableview tableview uisegmentedcontrol