gpt4 book ai didi

ios - 如何将数据从 View Controller 传递到相应的 UICollectionView 单元格?

转载 作者:行者123 更新时间:2023-11-30 13:25:12 26 4
gpt4 key购买 nike

我正在构建一个小型 iOS 游戏,用户可以在其中对 Collection View 中玩家列表中的玩家出价。

下图中的第三个viewcontroller中,如何让bid出现在对应播放器的collectionviewcell中?

The three view controllers

第一个 View Controller

带有玩家 UIcollectionview 的 vc。用户在这里选择一个玩家。

第二个 View Controller

在此目标 vc 中,用户对所选玩家设置出价。

包含 slider :

override func viewDidLoad() {
super.viewDidLoad()

configureSlider()
}

配置如下:

func configureSlider() {
if let playerProfile = player {
let minPrice = playerProfile.minPrice
bidSliderLabel.value = Float(minPrice)
}
}

prepare for segue 方法将出值(value)发送到第三个 Controller :

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
if (segue.identifier == "bidResults") {
let svc = segue.destinationViewController as! transferResultsViewController;

svc.bidSet = "\(bidSliderLabel.value)"

}
}

第三 View Controller

vc 2中设置的出价存储在bidSet变量中:

var bidSet: String?

现在我想向包含出价的collectionviewcell添加一个UILabel:

@IBOutlet weak var bidSetLabel: UILabel!

override func viewDidLoad() {
super.viewDidLoad()
bidSetLabel.text = bidSet
}

但是此 bidSetLabel 只能用于一个 CollectionView 单元格:包含收到出价的玩家的单元格。

我怎样才能实现这个目标?

解决方案

正如 Philip Mills 在评论中所建议的那样,我最终使用了数据模型而不是 segues。我将出值(value)存储在实例内的第二个 VC 中,这使得 VC 3 可以访问它。

最佳答案

您需要为每个collectionView单元添加Label。最初给出 bidSetLabel heightConstraint.constant=0

当您想要显示 bidSetLabel 时,只需传递该特定单元格的索引并将高度设置为您喜欢的该特定单元格的高度。 heightConstraint.constant=50 最初。

或者您也可以创建 Player 类来跟踪唯一的 player_uid 属性(如果您拥有在单元格中显示的数据)并将高度设置为 heightConstraint .constant=50 最初。

关于ios - 如何将数据从 View Controller 传递到相应的 UICollectionView 单元格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37299031/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com