記録。

めも。

コードでUIButtonを実装

まだまだswiftを書いていて知らないこと、学ぶこと盛りだくさんなswift初心者です。


コードでUIButtonのイベント処理を追加するときは、addTargetを使用しますが、(他を知らない)

そのとき引数のtargetにはサンプルコードにも今までの自身の経験でもselfしか見たことがありませんでした。

今回は、selfではないパターンで初めてaddTargetを使用して自身も「なるほどなぁ〜」と思ったので、
ここにメモとして書いとこうと思います。

今回はviewで定義したUIButtonをviewContorollerでボタンタップ時のイベントの処理を書いていきたいと思います。


sampleView.swift

import UIkit

class SampleView: UIView  {

    let sampleButton: UIButton

    override init(frame: CGRect) {

        self.sampleButton = UIButton(frame: CGRect(x: 50, y: 50, width: 50, height: 50)
  sampleButton.addTarget(SampleViewController(), action: #selector(SampleViewController.tappedButton), for: .touchUpInside)

        super.init(frame: frame)

        self.addSubview(self.sampleButton)

    }

    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
}


SampleViewController.swift

import UIKit

class SampleViewController: UIViewController {

   override func viewDidLoad() {
          super.viewDidLoad()
        
          sampleView = SampleView(frame: CGRect(origin: .zero, size: self.view.frame.size))
          self.view.addSubview(sampleView)

     }


   @objc func tappedButton() {

    print("button tapped!!")

     }


}


書いてみたら、、、「まあ、そうなるよね。。。」「当たり前だよね。。。」っていうような感じですね。


以上です!!