前提・実現したいこと
delegateを利用して,tableviewcontrollerのセルがタップされたら他クラスの値が更新されるようにしたいです
下記ソースコードの場合,ShareTableViewControllerクラスにおいてセルがタップされたら,そのことをShareViewControllerクラスに伝えてreloadConfigurationしたいです
発生している問題・エラーメッセージ
・ShareTableViewControllerにおいてdelegateのメソッド(delegate.shareTableViewControllerInform())を呼び出せない:エラー内容「Missing argument for parameter #1 in call」 ・ShareViewControllerにおいてdelegateにselfを代入できない:エラー内容「Cannot assign value of type 'ShareViewController' to type 'ShareTableViewControllerDelegate.Protocol'」
該当のソースコード
ShareViewController.swift class ShareViewController: SLComposeServiceViewController, ShareTableViewControllerDelegate{ static var valueOfCell:String = "" var share = ShareTableViewController(style: .plain) override func viewDidLoad() { super.viewDidLoad() //ここでエラー share.delegate = self // titleName self.title = "test" ・ ・ ・ } ShareTableViewController.swift import UIKit import RealmSwift @objc protocol ShareTableViewControllerDelegate{ func shareTableViewControllerInform() } class ShareTableViewController: UITableViewController { //delegate宣言 var delegate = ShareTableViewControllerDelegate.self override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { let cell = tableView.cellForRow(at:indexPath) ShareViewController.valueOfCell = cell!.textLabel?.text! ?? "" //セルのタップを外したらセル選択を解除する tableView.deselectRow(at: indexPath, animated: true) //ここでエラー delegate.shareTableViewControllerInform() }
補足情報(FW/ツールのバージョンなど)
Swift4 Xcode10.1です
よろしくお願いします
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/01/05 05:56
2019/01/05 14:19
2019/01/05 15:57