前提・実現したいこと
ViewController内で書いているメソッドをカスタムセルクラスで使いたい。
発生している問題
カスタムクラスで呼び出されない。
該当のソースコード
class ViewController: UIViewController,UITableViewDelegate,UITableViewDataSource,UIScrollViewDelegate、removeDelegate { @IBOutlet weak var tableView0: UITableView! @IBOutlet weak var tableView1: UITableView! weak var protcol:removeDelegate? func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { if tableView.tag == 0 { if let cell0 = self.tableView0.dequeueReusableCell(withIdentifier: "FirstTableViewCell") as? FirstTableViewCell { cell0.cellItem = Info[indexPath.row] cell0.delegate = self cell0.protcol = self return cell0 } }else if tableView.tag == 1 { if let cell1 = self.tableView1.dequeueReusableCell(withIdentifier: "FirstTableViewCell") as? FirstTableViewCell { cell1.cellItem2 = InfoSearch[indexPath.row] cell1.delegate = self cell1.protcol = self return cell1 } } remove(){ print("remove") } }
protocol removeDelegate:class { func remove() } class FirstTableViewCell: UITableViewCell { weak var protcol:removeDelegate? @IBAction func RemoveAction(_ sender: Any) { self.protcol?.remove() } }
試したこと
@IBAction func RemoveAction(_ sender: Any) { let storyboard = UIStoryboard(name: "View", bundle: nil) // storyboardのインスタンスを名前指定で取得 let view = storyboard.instantiateInitialViewController() as! ViewController self.protcol? = view self.protcol?.remove() }
class ViewController: UIViewController,UITableViewDelegate,UITableViewDataSource,UIScrollViewDelegate、removeDelegate { weak var protcol:removeDelegate? let cell = FirstTableViewCell() override func viewDidLoad() { super.viewDidLoad() cell.protcol? = self
デリゲートの設定?として試しましたが、うまくいきませんでした。
プログラミング初心者ですのでご教授いただけると幸いです。
回答1件
あなたの回答
tips
プレビュー