前提

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”)
    }    
}