arrays - swift : TableView Cell data change with the Button Actions

标签 arrays swift uitableview

我创建了 Bus Ticket 应用程序。而不是我正在设置我的下车点和登机点屏幕。所以我有一个数据列表,一个是登机点,另一个是数组类型中的落点。所以我想按照下图进行设置。当我选择登机按钮时,我想显示登机点列表和下降按钮的类似列表。

enter image description here

所以我只是尝试遵循代码,但它对我不起作用。

 var arrBoardPoints = [SBDropPickPoint]()  
 var arrDropPoints = [SBDropPickPoint]()


func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "DroppingCell") as! DroppingCell
        if btnBoarding.isSelected == true {
            cell.lblDrop.text = arrBoardPoints[indexPath.row].title
            cell.lblAddress.text = arrBoardPoints[indexPath.row].address
            cell.lblTime.text = arrBoardPoints[indexPath.row].time
        } else btnDropping.isSelected == true {
            cell.lblDrop.text = arrDropPoints[indexPath.row].title
            cell.lblAddress.text = arrDropPoints[indexPath.row].address
            cell.lblTime.text = arrDropPoints[indexPath.row].time
        }
        return cell
    }

然后我在下车和登机按钮操作上重新加载我的 tableView 数据。

最佳答案

按照这一步:-

1 - 创建 UISegmentedController,它有两个分段索引,一个是登机,第二个是丢弃

2 - 在 Controller 中创建模型的第三个数组

var arrPoints = [SBDropPickPoint]()

3 - 在viewDidLoad 方法添加分段 Controller 的目标方法 并将第一个数组分配给arrPoints 并提及选择的分段首先。

    arrPoints = arrBoardPoints
    segmentedController.selectedSegmentIndex = 0

    segmentedController.addTarget(self, action: #selector(segmentedControllerValueChanged(sender:)), for: .valueChanged)

4 - 在要显示的数组列表的分段 Controller 的目标方法中添加代码,然后重新加载 tableview。

@objc func segmentedControllerValueChanged(sender: UISegmentedControl) {

        switch sender.selectedSegmentIndex {
        case 0:
            arrPoints = arrBoardPoints
        case 1:
            arrPoints = arrDropPoints
        default:
            print("Invalid")
        }

        tableView.reloadData()
    }

5 - 在您的 tableview 数据源和 delgate 方法中使用 arrPoints 模型数组来显示列表。

extension ControllerName: UITableViewDataSource, UITableViewDelegate {

    func numberOfSections(in tableView: UITableView) -> Int {
        return 1
    }

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return arrPoints.count
    }

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "DroppingCell") as! DroppingCell        
        cell.lblDrop.text = arrPoints[indexPath.row].title
        cell.lblAddress.text = arrPoints[indexPath.row].address
        cell.lblTime.text = arrPoints[indexPath.row].time

    return cell

    }


}

关于arrays - swift : TableView Cell data change with the Button Actions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54004920/

相关文章:

swift - 滚动以加载数据。 swift 。 UI表格 View

ios - 将图像从S3存储桶加载到uiTableView

php - 我想用 mysql_real_escape_string() 函数检查数组的数据

swift - NSAsynchronousFetchRequest 可能的内存泄漏

macos - 在 Swift 中从下载的 NSData 创建 NSImage

macos - 如何快速获取分辨率更改事件?

javascript - 将 JSON 扁平化为具有重复节点的层次结构

C - 插入到现有数组中

arrays - 我可以迭代数组数组并将其与整数数组进行比较吗

ios - 使用自定义单元格中的按钮并传递对象执行 segue