And u can just link them in storyboard.
Objective-C
@property (strong, nonatomic) IBOutletCollection(UIButton) NSArray * buttons;
Swift 2.2
@IBOutlet var collectionOfButtons = [UIButton]()
override func viewDidLoad() {
super.viewDidLoad()
collectionOfButtons.forEach {
$0.addTarget(self, action: #selector(someFunc(_:)), forControlEvents: .TouchUpInside)
}
}
Or much simpler way:
override func viewDidLoad() {
super.viewDidLoad()
for view in view.subviews {
(view as? UIButton)?.addTarget(self, action: #selector(someFunc(_:)), forControlEvents: .TouchUpInside)
}
}
func someFunc(sender: UIButton?) {}
Swift 3.0
override func viewDidLoad() {
super.viewDidLoad()
view.subviews.forEach {
($0 as? UIButton)?.addTarget(self, action: #selector(someFunc(_:)), for: .touchUpInside)
}
}
func someFunc(_ sender: UIButton?) {}