Ios 是否从UICollectionViewCell访问保存在UIViewController中的变量?
我有一个MainViewController(MainVC.swift)和一个CellViewController(CellVC.swift)。 My MainViewController包含一些标签、按钮和集合视图。此集合视图的单元格由CellViewController控制(我有一个cell.xib文件) 在MainViewController中,我保存了一些要在CellViewController中使用的变量(floatRatingViewWidth、floatRatingViewHeight) 如何从CellViewController访问这些变量 MainViewControllerIos 是否从UICollectionViewCell访问保存在UIViewController中的变量?,ios,swift,uicollectionview,uicollectionviewcell,Ios,Swift,Uicollectionview,Uicollectionviewcell,我有一个MainViewController(MainVC.swift)和一个CellViewController(CellVC.swift)。 My MainViewController包含一些标签、按钮和集合视图。此集合视图的单元格由CellViewController控制(我有一个cell.xib文件) 在MainViewController中,我保存了一些要在CellViewController中使用的变量(floatRatingViewWidth、floatRatingViewHeig
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
}
}
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 {
做:
您是否有collectionView(collectionView:UICollectionView,cellForItemAt indexPath:indexPath)->UICollectionViewCell?谢谢!它可以工作(但我立即进入插座)!是否有可能执行类似“let mainVC=mainVC()”的操作,然后从实例访问数据?我知道这段代码不起作用,但可能与之类似?这不是一个好主意,因为您使用的是mainVC的一个新实例,因此如果任何数据发生更改,每个实例中的数据都会不同。你能做的就是创建一个只包含变量的类,在mainvc中实例化它,设置数据并传递整个类。有意义^^非常感谢!