【Swift】【XCode】Senderを使って複数のイベントを1つのメソッドで処理する

目次

senderを使って、複数のイベントを1つのメソッドで処理する

イベントを発生させるUIのTagを使用してどのオブジェクトからのイベントなのかハンドリングする

  1. 複数のボタンを用意する
    今回は3つボタンを配置します。
    ボタン配置

  2. タグを設定する
    以下の画像の赤枠の部分のTagとなっている部分をそれぞれ、1,2,3に設定します。
    タグの設定

  3. 同じメソッドにClickイベントを紐付ける
    最初のイベントのみ、通常の紐付け方をして、その後の2つは1つ目で作成した部分に差し込みます。
    同じイベントの設定

  4. Controllerでタグでイベントを分岐させる

  • 引数で渡されるsenderからはtagを取れないので、AnyObjectにキャストする必要があります。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    let tag = (sender as AnyObject).tag

    guard let tag = tag else {
    print("タグが設定されていません")
    return
    }

    switch tag {
    case 1:
    print("Button1が押されました")
    case 2:
    print("Button2が押されました")
    case 3:
    print("Button3が押されました")
    default:
    print(String(tag)+"イベントが来ました")
    }

【Swift】【XCode】Senderを使って複数のイベントを1つのメソッドで処理する

https://blog.djima.net/2021/08/04/【Swift】【XCode】Senderを使って複数のイベントを1つのメソッドで処理する/

Author

Daiki Iijima

Posted on

2021-08-04

Updated on

2024-04-17

Licensed under