问题描述
我有一个MainViewController(MainVC.swift)和一个CellViewController(CellVC.swift)。 我的MainViewController包含一些标签,按钮和一个Collection视图。此Collection View的单元格由CellViewController(我有一个Cell.xib文件)控制。
在MainViewController中,我保存了一些要在CellViewController中使用的变量(floatratingViewWidth,floatratingViewHeight)。
如何从CellViewController访问这些变量?
MainViewController
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
}
}
CellViewController
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