swift 代理

2017-08-18  本文已影响29人  机智的猪

代理
在tableviewcell中 点击view controller收到并跳转控制器

old
1.cell中 定义协议
    @objc protocol SponsorTableViewCellDelegate: NSObjectProtocol {
        func pushToSponsorDetailView(model: SponsorData)
    }

2.cell中 写一个代理属性
    weak var delegate: SponsorTableViewCellDelegate?

3.cell中 按钮点击事件中 通知代理做事情
    @objc func topContentViewTap() -> Void {
        self.delegate?.pushToSponsorDetailView(self.sponsorData)
    }

4.控制器中 设置代理
        cell.delegate = self

5.实现代理的方法
    func pushToSponsorDetailView(model: SponsorData) -> Void {

        let sponsorDetailVC = SponsorDetailTableViewController()
        sponsorDetailVC.modelData = model
        self.navigationController?.pushViewController(sponsorDetailVC, animated: true)
    }

new
1.cell中定义协议
    protocol SponsorTableViewCellDelegate {
        func pushToSponsorDetailView(model: SponsorData)
    }

2.cell中 写一个代理属性
    var delegate: SponsorTableViewCellDelegate?

3.cell中 按钮点击事件中 通知代理做事情
    @objc func topContentViewTap() -> Void {
        self.delegate?.pushToSponsorDetailView(self.sponsorData)
    }

4.控制器中 设置代理
        cell.delegate = self

5.实现代理的方法
    func pushToSponsorDetailView(model: SponsorData) -> Void {

        let sponsorDetailVC = SponsorDetailTableViewController()
        sponsorDetailVC.modelData = model
        self.navigationController?.pushViewController(sponsorDetailVC, animated: true)
    }



上一篇下一篇

猜你喜欢

热点阅读