UIButtonのアクションの管理の仕方について質問をさせていただきます。
つかぬ事をお聞きしてしまうかもしれないのですが、どなたか回答いただけたら幸いです。
@IBOutlet weak var button_0: UIButton!
@IBOutlet weak var button_1: UIButton!
@IBOutlet weak var button_2: UIButton!
@IBOutlet weak var button_3: UIButton!
//...以下複数個続く
と複数個のUIButtonをViewControllerなどに結びつけて
それぞれのボタンのアクションを設定したい場合
var buttons:[UIButton] = []
と配列などを用意して管理するViewControllerのViewDidLoadなどで
buttons.append(button_0)
buttons.append(button_1)
buttons.append(button_2)
//...以下個数分続く
for i in 0..<buttons.count{
buttons[i].tag = i
buttons[i].addTarget(self, action: #selector(ToolView.action(_:)), forControlEvents: .TouchUpInside)
}
と記述するのは単調であまり良くない気がしてしまうのですが なにか良い方法はありますか?
やはり、複数個の部品の設置はコードから作成するほうが良いのでしょうか?
※ViewControllerのactionはこのような感じで使おうと思っています...
@objc private func action(sender: UIButton){
switch sender.tag {
case 0:
print("button_0")
case 1:
print("button_1")
case 2:
print("button_2")
//...個数分続く
default:break
}
}
おかげさまで解決しました。
quesera2さん、画像付きでとても分かりやすかったです。ありがとうございます。
Le Pere d'OOさんも当日の深夜に返していただき、助かりました。ありがとうございます。
よく調べればもしかしたら出てきた質問だったかもしれませんが、私自身初めて知ることができたので良かったです。
@IBOutlet Collectionの記事
はじはじアプリ体験記さん
スタック・オーバーフロー