通过 TableView 将 XML 数组数据传递给 CollectionView [英] Passing XML Array Data to CollectionView via TableView

查看:23
本文介绍了通过 TableView 将 XML 数组数据传递给 CollectionView的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试将数据数组从视图控制器传递到集合视图单元格.我的 collectionview 目前在 tableview 中.我曾尝试使用委托/协议并在类中创建数组,但未能成功将数据传递给我的集合视图.

I'm attempting to pass an array of data from the view controller to the collection view cells. My collectionview is currently in a tableview. I have tried using delegation/protocols and creating arrays in the class and have not been able to successfully pass the data to my collectionview.

我的代码如下:

视图控制器:

var ageUnder10: [MissingPerson] = []
var age10Plus: [MissingPerson] = []
var age15Plus: [MissingPerson] = []

if let ageRange = ageRange {
        switch ageRange {
        case .ageUnder10:
            let ageUnder10Array = MissingPerson()
            ageUnder10Array.title = self.missingPerson.title
            ageUnder10Array.desc = self.missingPerson.desc
            ageUnder10Array.url = self.missingPerson.url
            self.ageUnder10.append(ageUnder10Array)
        case .age10Plus:
            let age10PlusArray = MissingPerson()
            age10PlusArray.title = self.missingPerson.title
            age10PlusArray.desc = self.missingPerson.desc
            age10PlusArray.url = self.missingPerson.url
            self.age10Plus.append(age10PlusArray)
        case .age15Plus:
            let age15PlusArray = MissingPerson()
            age15PlusArray.title = self.missingPerson.title
            age15PlusArray.desc = self.missingPerson.desc
            age15PlusArray.url = self.missingPerson.url
            self.age15Plus.append(age15PlusArray)
        }
    } else {
        print("No valid age found")
    }

Tableview 单元格:

Tableview Cell:

 class TableViewCell: UITableViewCell {
    var ageUnder10 = [MissingPerson]()
    var age10Plus = [MissingPerson]()
    var age15Plus = [MissingPerson]()
}

  • 这些值是从 XML 网址填充的
  • 通过扫描器创建类别,扫描 xml 中项目的值(以创建 ageRange)
  • 我从视图控制器类中的单独数组填充了 titleforheader 和标题名称
  • 推荐答案

    我想通了,我需要使用结构来传递数据.另外,在tableview类中创建一个数组实例,并编写一个函数来填充collectionView单元格.

    I figured it out, I needed to use a struct to pass the data. Also, create an instance of the array in the tableview class and write a function to fill the collectionView cell.

    示例:

    CustomTableViewCell:

    CustomTableViewCell:

    customArray: [CustomArray]()
    
    func configureCollectionCell(with array: [CustomArray]) {
    self.customArray = customArray
    }
    

    ViewController 类:

    ViewController Class:

     var customArray = [CustomArray]()
    
        func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
       if let cell = tableView.dequeueReusableCell(withIdentifier: "customCell", for: indexPath) as? CustomTableViewCell {
        cell.configureCollectionCell(with: customArray)
        return cell
        }
    

    这篇关于通过 TableView 将 XML 数组数据传递给 CollectionView的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆