1つのビュー(送信ビュー)で2番目のビュー(受信ビュー)の外観を変更する必要がある、非常に簡単なプロジェクトがあります。私は委任を使用しようとしていますが、私はSendingVCで代入変数 "代理人"に問題があります。私は、オーバーライドfuncでそれをやろうとしましたが、ReceivingVCで "準備中"ですが、このメソッドは呼び出されません。Swift - TabBarを使用したデリゲートメソッド
私はこのコードは仕事ができると思うが、私はそれを置くべき場所わからない。:
let sendVC : SendingVC! = tabBarController?.viewControllers![1] as! SendingVC
sendVC.delegate = self
ReceivingVC:
import UIKit
class ReceivingVC: UIViewController, DataSendDelegate {
@IBOutlet weak var Label: UILabel!
func userDidEnterData(data: String) {
Label.text = data
}
override func viewDidLoad() {
super.viewDidLoad()
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let sendVC : SendingVC! = tabBarController?.viewControllers![1] as! SendingVC
sendVC.delegate = self
}
}
SendingVC:
import UIKit
protocol DataSendDelegate {
func userDidEnterData(data: String)
}
class SendingVC: UIViewController {
var delegate: DataSendDelegate? = nil
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func setTextButton(_ sender: UIButton) {
if delegate != nil {
delegate?.userDidEnterData(data: "some text")
}
}
}
コードを画像の代わりにスニペットとして追加する必要があります。 –
OK、編集しました – Michal
ReceivingVCのviewDidLoadメソッドにコードを入れてみましたか? – bjd23