【问题标题】:Passing data from Collection View Cell to View Controller将数据从 Collection View Cell 传递到 View Controller
【发布时间】:2020-02-17 23:19:14
【问题描述】:

这是UICollectionViewCell 类:

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 类的必要代码范围:

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.
}

【问题讨论】:

    标签: ios swift uiviewcontroller uicollectionview closures


    【解决方案1】:

    你可以试试

    public var dismiss: ((String)-> Void)? = nil 
    

    self.dismiss?(sender.titleLabel!.text)
    

    然后

    cell.dismiss = { [weak self] str  in
        //Here.
    }
    

    【讨论】:

    • 谢谢,但最后一个给出了错误:cell.dismiss = { str [weak self] in //Here. }
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-15
    • 2019-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多