将数据从 Collection View Cell 传递到 View Controller
Passing data from Collection View Cell to View Controller
这里是 UICollectionViewCell
class:
class ViewCell: UICollectionViewCell {
@IBOutlet weak var lblOutlet: UILabel!
@IBOutlet weak var contentViewOutlet: UIView!
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
}
public var dismiss: (()-> Void)? = nil
@IBAction func btnBack(_ sender: UIButton) {
self.dismiss?()
}
}
这里是 ViewController
Class 的必要代码范围:
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell: ViewCell = // Your code to dequeue cell
cell.dismiss = { [weak self] in
//??????
}
}
例如,假设我必须将此数据 sender.titleLabel?.text
传递给 ViewController。那么如何将此参数(sender.titleLabel?.text)添加到此代码中:
public var dismiss: (()-> Void)? = nil
以及如何在以下范围内的 View Controller 中读取此数据:
cell.dismiss = { [weak self] in
//Here.
}
你可以试试
public var dismiss: ((String)-> Void)? = nil
和
self.dismiss?(sender.titleLabel!.text)
然后
cell.dismiss = { [weak self] str in
//Here.
}
这里是 UICollectionViewCell
class:
class ViewCell: UICollectionViewCell {
@IBOutlet weak var lblOutlet: UILabel!
@IBOutlet weak var contentViewOutlet: UIView!
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
}
public var dismiss: (()-> Void)? = nil
@IBAction func btnBack(_ sender: UIButton) {
self.dismiss?()
}
}
这里是 ViewController
Class 的必要代码范围:
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell: ViewCell = // Your code to dequeue cell
cell.dismiss = { [weak self] in
//??????
}
}
例如,假设我必须将此数据 sender.titleLabel?.text
传递给 ViewController。那么如何将此参数(sender.titleLabel?.text)添加到此代码中:
public var dismiss: (()-> Void)? = nil
以及如何在以下范围内的 View Controller 中读取此数据:
cell.dismiss = { [weak self] in
//Here.
}
你可以试试
public var dismiss: ((String)-> Void)? = nil
和
self.dismiss?(sender.titleLabel!.text)
然后
cell.dismiss = { [weak self] str in
//Here.
}