ios - 从 UICollectionViewCell 访问保存在 UIViewController 中的变量?
问题描述
我有一个 MainViewController (MainVC.swift) 和一个 CellViewController (CellVC.swift)。我的 MainViewController 包含一些标签、按钮和一个 Collection View。此集合视图的单元格由 CellViewController 控制(我有一个 Cell.xib 文件)。
在我的 MainViewController 中,我保存了一些我想在 CellViewController 中使用的变量(floatRatingViewWidth、floatRatingViewHeight)。
如何从 CellViewController 访问这些变量?
主视图控制器
class MainVC: UIViewController {
@IBOutlet weak var collectionView: UICollectionView!
var floatRatingViewWidth = CGFloat()
var floatRatingViewHeight = CGFloat()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
collectionView.register(UINib(nibName: "Cell", bundle: nil), forCellWithReuseIdentifier: "myCell")
collectionView.delegate = self
collectionView.dataSource = self
settingUpNavBar()
let cellHeight = view.frame.size.height * 0.3
let cellWidth = view.frame.size.width * 0.42
floatRatingViewWidth = cellWidth - 69
floatRatingViewHeight = cellHeight * 0.05
}
}
单元视图控制器
class CellVC: UICollectionViewCell {
@IBOutlet weak var ratingHeight: NSLayoutConstraint!
@IBOutlet weak var ratingWidth: NSLayoutConstraint!
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
}
}
解决方案
在您的单元格中添加您需要的变量:
class CellVC: UICollectionViewCell {
var cellFloatRatingViewWidth : CGFloat?
var cellFloatRatingViewHeight = CGFloat?
在你的:
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
做:
cell.cellFloatRatingViewWidth = floatRatingViewWidth
推荐阅读
- powershell - 从 Azure 自动化运行时,防止 Powershell 文件将拆分/换行文本写入多行
- reactjs - 找不到上下文 Next Js
- javascript - 如何使用 ReactJS 添加基于用户表单输入的条形图
- java - 如何在 Spring WebFlux 中创建通用 BodyExtractor
- javascript - JavaScript 对象构造函数
- javascript - JavaScript 中的错误 addToDoButton.addEventListener("click", function(){
- openedge - 如何将内容放入 OpenEdge 进度审计表中?
- parameters - 获取 RFKK_MA_SCHEDULER 参数值
- python - 如何在 Python 中使用 Selenium 选择 iframe?
- r - R中命名列表元素与命名向量的逻辑比较