I wanted to know how to load selected data from my table view, for example when selecting segment index is equal 1, the table view will reload and will only show data which status is equal to approved.因为正如您从我下面的代码中看到的那样,我已经加载了具有所有状态的所有数据:。例如,如果 segmentView.selectedSegmentIndex == 1 表将重新加载状态等于批准的数据。我已经可以确定所选索引。我想要的是如何从 TableView 访问这些数据,我可以根据状态加载选定的数据
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
中的数据:
并在所有条件下像这样使用它,例如:
像这样创建一个通用函数:
func filterDataStatusWise(strStatus:String){
for dict in arrMainResponse{
let strStatus = arrMainResponse["status"]
if strStatus["name"] = strStatus{
//Whatever data add in arrForDisplay here
}
tableView.reloadData()
}
}
然后像这样使用它:
var arrForDisplay = [String:Any]()
if condition1{
filterDataStatusWise(strStatus: "ongoing")
}else if condition2{
filterDataStatusWise(strStatus: "approved")
}else if condition3{
filterDataStatusWise(strStatus: "for approval")
}else if condition4{
filterDataStatusWise(strStatus: "near expiry")
}else{
filterDataStatusWise(strStatus: "expired")
}
希望对您有所帮助!
关于ios - 选择段时如何从 TableView 加载选定数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49873650/