【问题标题】:assign enum value to another view controller将枚举值分配给另一个视图控制器
【发布时间】:2022-11-16 04:46:30
【问题描述】:

大家好,我在尝试从 UICollectionViewCell 中的函数发送一些信息时遇到了一些麻烦

在我的第一个名为 OffersUSViewController 的 viewController 上

private enum BpAmocoOfferItem {
        case carousel(items: [CarouselOfferItems])
        case spendChallenge
        case fnboPromotion
        case referAFriend
        case priceMatch
        case communitySupport
    }
    
    enum CarouselOfferItems {
        case fnboPromotion
        case referAFriend
        case priceMatch
        case communitySupport
    }

var carouselItems : [CarouselOfferItems] = []

在 cellForRowAt 我有一个案例的功能旋转木马这导致下一个 viewController 设置 但每当我尝试调用

cell.configure(withNumberOfItems: items.count, arrayValues: carouselItems)

总是显示错误:

无法将类型“[OffersUSViewController.CarouselOfferItems]”的值转换为预期的参数类型“[OffersCarouselTableViewCell.CarouselOfferItems]”

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

case .carousel(items: let items):
                guard let cell = tableView.dequeueReusableCell(withIdentifier: OffersCarouselTableViewCell.reuseID, for: indexPath) as? OffersCarouselTableViewCell else { break }
                cell.configure(withNumberOfItems: items.count, arrayValues: carouselItems)
                
                tableCell = cell
}

每次我为此尝试将信息传递给下一个视图控制器轮播项目

总是显示错误

在名为 OffersCarouselTableViewCell 的第二个视图控制器上

我有

public var collectionViewData : [Section] = []
    public enum Section {
        case bpAmocoOffers(items: [CarouselOfferItems])
    }
    
    public enum CarouselOfferItems {
        case fnboPromotion
        case referAFriend
        case priceMatch
        case communitySupport
    }

和配置功能

func configure(withNumberOfItems newNumberOfItems: Int, arrayValues: [CarouselOfferItems]){
        numberOfItems = newNumberOfItems
        var data : [Section] = []
        let bpAmocoOffers : [CarouselOfferItems] = arrayValues
        if bpAmocoOffers.isEmpty == false {
            data.append(.bpAmocoOffers(items: bpAmocoOffers))
        }
        collectionViewData = data
        collectionView.reloadData()
    }

这是我需要的信息

CarouselOfferItems

如果有一个明智的选择,我想要实现的是 传递来自 VC1 这个特定部分的信息

var carouselItems : [CarouselOfferItems] = []

所以我可以命令为 UICollectionViewCell 分配正确的单元格

一旦我得到这些信息,我就可以将这些项目附加到轮播部分

public enum Section {
        case bpAmocoOffers(items: [CarouselOfferItems])
    }
    
    public enum CarouselOfferItems {
        case fnboPromotion
        case referAFriend
        case priceMatch
        case communitySupport
    }

【问题讨论】:

    标签: swift enums


    【解决方案1】:

    只需将CarouselOfferItems设为全局,不要将其放在视图控制器中

    【讨论】:

      猜你喜欢
      • 2021-10-21
      • 2015-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多