カスタムセル上のボタンアクションが動かない。
前提
Swift 4でアプリ開発を始めました。
発生している問題
タイトルのとおりなんですがカスタムセル上のボタンに @IBAction
を紐づけても動作しません。
また押したボタンが設置されているセル内のラベルのテキストも取得したいです。
どのように修正すれば動かせるか教えていただけないでしょうか。
- TabBarController を使っています。
- FirstView に TableView を画面いっぱいに設置しています。
- TableView にカスタムセルを作ってそこにボタン1つとラベル2つを設置してます。
@IBAction
でボタンとshowMsg(_ sender: UIButton)
を紐づけています。- 一応画面自体は意図したとおりに表示されてますがボタンが全く反応しません。
該当のソースコード
FirstViewController.swift
:
import UIKit
class FirstViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
@IBOutlet weak var sentenceList: UITableView!
override func viewDidLoad() {
//super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
sentenceList.register(UINib(nibName: "customTableViewCell", bundle: nil), forCellReuseIdentifier: "reuseceell")
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 10
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
var showCellContent = tableView.dequeueReusableCell(withIdentifier: "reuseceell", for: indexPath) as! customTableViewCell
showCellContent.showCellDataControl(indexNo: indexNO)
return showCellContent
}
}
customTableViewCell.swift
:
import UIKit
class customTableViewCell: UITableViewCell{
@IBOutlet weak var aLabel: UILabel!
@IBOutlet weak var bLabel: UILabel!
@IBOutlet weak var playBtn: UIButton!
func showCellDataControl(indexNo : Int){
self.aLabel.text = “a_text”
self.bLabel.text = “b_text”
self.playBtn.tag = indexNo
}
@IBAction func showMsg(_ sender: UIButton) {
print(“msg”)
}
}