ios - 选择段时如何从 TableView 加载选定数据?

标签 ios swift uitableview tableview uisegmentedcontrol

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/

相关文章:

ios - 将 'class variable' 分配给 'lazy var' 内的变量

ios - AppDelegate Swift 中的 reloadData

ios - 尝试使用NSKeyedArchiver在UserDefaults中保存自定义对象

swift - 如何在子 UICollectionView 上获取 UITableView 的一部分

iphone - 分组单元格显示在我的普通 tableView 中,我不知道为什么

objective-c - NSMutableArray获取[__NSCFString计数]:无法识别的选择器已发送到实例

multithreading - NSOperation 会产生一个新线程吗?

ios - 当滚动出 View 时,覆盖的 setSelected 和 setHighlighted 不保留选定的背景

ios - 无法使用 NSTimer 使 NSOperation 超时

iphone - 如何在 iPhone 中不使用 UIPIckerviewcontroller 创建下拉列表?