こんばんは。
swiftにてios開発を始めたばかりの者です。
自作でdelegateの処理を書いたのですが、メソッドが実行されません。
具体的には、
ボタンを押した際に、通知をして通知先(BBBController)に
AAAControllerで持っている値をBBBControllerに送り、その後navigationbarを一つ前(BBBControllerの画面)に戻す
というような処理を行いたいと思っています。
以下の2つのコードを書いて
コンソールを確認しながら動かしているのですが,registerTapButton()のメソッド が動いていないようです。
書いたコードは以下の通りです。
//AAAController.swift protocol RegisterButtonDelegate { //buttonを押した際のdelegateメソッド の記述 func registerTapButton() } class AAAController: UIViewController { weak var delegate: RegisterButtonDelegate? override func viewDidLoad(){ 略 } 〜略〜 @IBAction func registerButton(_ sender: Any) { let nav = self.navigationController! let bbbController = nav.viewControllers[nav.viewControllers.count - 2] as! BBBViewController //このmessegeをbbbControllerに送りたい。 bbbController.sendMessage = "aaaa" //delegateメソッド の実行(brakepointで確認したらnilになっていました) self.delegate?.registerTapButton() //navigationbarのときの画面戻る動作 self.navigationController?.popViewController(animated: true) } }
//BBBController.swift class BBBController: UIViewController, RegisterButtonDelegate { var sendMessage: String? over func viewDidLoad() { super.viewDidLoad() let aaaController: AAAController? = AAAController() aaaController?.delegate = self } 〜略〜 func registerTapButton() { print("動作確認") print(self.sendMessage) } }
アドバイスどうぞよろしくお願いします。
回答2件
あなたの回答
tips
プレビュー