swift3 按钮触发事件_Swift3多个按钮动态编码触发事件

我更喜欢使用委托设计模式,当谈到解决的问题一样,为它我发现它不仅仅是@IBActions的大规模量

1 - 创建一个更清洁的方法语言类 进口基金会

class Language {

var id: Int

var name: String

init(id: Int, name: String) {

self.id = id

self.name = name

}

}

2 - 创建故事板或笔尖的自定义单元格,然后添加相应的出口和动作。然后你创建一个委托协议,为它

import UIKit

protocol CustomCellDelegate: class {

func customCell(newLanguageSelected language: Language)

}

class CustomCell: UITableViewCell {

var language: Language!

@IBOutlet weak var languageTextLabel: UILabel!

weak var delegate: CustomCellDelegate?

func setupCustomCell(withLanguage language: Language){

self.language = language

self.languageTextLabel.text = self.language.name

}

@IBAction func buttonPressed(sender: UIButton){

delegate?.customCell(newLanguageSelected: self.language)

}

}

3-最后添加实现在UITableViewDataSource的cellForRow方法,并添加委托执行中的UITableViewController类

import UIKit

class YourTableViewController: UITableViewController{

var languages: [Language] = []

//implement the other methods in the dataSource

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

let cell = tableView.dequeueReusableCell(withIdentifier: "reuse", for: indexPath) as! CustomCell

cell.delegate = self

cell.setupCustomCell(withLanguage: languages[indexPath.row])

return cell

}

}

extension YourTableViewController: CustomCellDelegate{

func customCell(newLanguageSelected language: Language) {

//Do what you will with the language

}

}

好运

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值